【问题标题】: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
相关资源
最近更新 更多