2012-09-03 97 views
1

我在ImageView内部和使用画布上显示位图。在Canvas中调整图像大小

ImageView:它显示整个图像无论多大的图像,它压缩ImageView的宽度/高度内的位图。

画布:画布绘制位图,但如果位图较大,则画面不在屏幕上。

如何在画布上像位图显示一样的位图行为?

+0

没有得到这一行:如何相同的行为用于像Imageview显示在画布上的位图。 – Shrikant

+0

如果我把一个大的位图使用setImageBitmap for ImageView,这里usser可以在同一个位图上看到类似的整个图像,同时在画布上绘制它的一部分不在屏幕上。 – strike

+0

“它压缩ImageView宽度/高度内的位图。” - 你的意思是它调整位图的权利? – Gautam

回答

1

若要调整位图大小 请在画布上查看drawBitmap方法,每个重载方法都允许指定大小。例如这里的方法

public void drawBitmap (int[] colors, int offset, int stride, int x, int y, int width, int height, boolean hasAlpha, Paint paint)

它允许您指定的宽度和高度上的签名。

或者

使用public void drawBitmap (Bitmap bitmap, Matrix matrix, Paint paint)

使用public void setScale (float sx, float sy)来调整

使用此根据您的需求来调整图像

+1

这会让我更难在不使用矩阵的情况下实现其中的缩放功能。由于上述功能不使用Matrix来显示位图。 – strike

+0

然后使用'public void drawBitmap(Bitmap bitmap,Matrix matrix,Paint paint)'这个方法调用Matrix,并使用Matrix的'public void setScale(float sx,float sy)'方法在Matrix中调整大小 – Gautam