【问题标题】:Resize Images in Canvas在画布中调整图像大小
【发布时间】:2012-08-27 21:57:31
【问题描述】:

我在内部 ImageView 上显示位图并使用 Canvas 。

ImageView : 显示整张图片,不管图片有多大,在Imageview的宽/高范围内压缩位图。

Canvas : 画布绘制位图,但如果位图较大,则会超出屏幕。

如何使位图在画布上的行为与 Imageview 显示相同?

【问题讨论】:

  • 没有得到这一行:How to the same behavior for bitmap on canvas like Imageview display.?
  • 如果我为 ImageView 使用 setImageBitmap 的大位图,用户可以在画布上绘制同一位图时类似地看到整个图像,其中一些部分会超出屏幕。
  • "它在 Imageview 的宽度/高度内压缩位图。" -- 你的意思是它会调整位图的大小吗?
  • "它在 Imageview 的宽度/高度内压缩位图。"正是我需要的。

标签: android bitmap imageview android-canvas


【解决方案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) 调整大小

使用它根据您的需要重新调整图像大小

【讨论】:

  • 在不使用矩阵的情况下实现缩放功能会让我更难实现。因为上面的函数不使用矩阵来显示位图。
  • 然后使用public void drawBitmap (Bitmap bitmap, Matrix matrix, Paint paint)这个方法并使用矩阵的public void setScale (float sx, float sy)方法在矩阵中调整大小
猜你喜欢
  • 2017-04-29
  • 2011-01-19
  • 2017-04-22
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多