2012-02-13 21 views
4

我有一个绘制,我已调整到适当的所需高度(25dp),并且宽度按比例缩放。但是,我想要一个宽度为25dp的正方形图像。但是,我不想扭曲图像,所以我希望剪裁画布左右两侧的相等部分,以使中心为25dpx25dp。这可能吗?怎么样?我一直在尝试过去的两个小时,我即将准备投入毛巾...作物可绘制到方形

回答

3
 

Bitmap target= Bitmap.createBitmap(width, height,Config.ARGB_8888); 
Canvas canvas = new Canvas(target) 
float hScale = width/(float)source.getWidth(); 
float vScale = height/(float)source.getHeight(); 
float scale = Math.min(hScale, vScale); 
Matrix matrix = new Matrix(); 
matrix.setScale(scale, scale); 
matrix.postTranslate(width/2 - source.getWidth()/2 * scale, height/2 - source.getHeight()/2 * scale); 
canvas.drawColor(Color.BLACK); 
canvas.drawBitmap(source, matrix, new Paint()); 
 
+0

我非常非常新来绘制画布..如何将此添加到我的布局一次它的画? – user1118042 2012-02-13 03:02:15

+0

如果您使用ImageView然后imageView.setImageBitmap(目标); http://developer.android.com/reference/android/widget/ImageView.html#setImageBitmap(android.graphics.Bitmap) – 2012-02-13 03:34:51

+0

我可以将它添加到文本视图作为一个复合drawable不知何故?并非常感谢你已经给我的帮助! – user1118042 2012-02-13 04:01:19