android - 在 Android 中的 Canvas 上显示位图图像的一部分

标签 android canvas matrix bitmap drawbitmap

我正在尝试在我的 Android 应用程序中构建一个放大工具。为此,我有一个 ImageView,我将其转换为位图(带有一些缩放/比例因子)。

imageView.setDrawingCacheEnabled(true);
Bitmap drawingCache = imageView.getDrawingCache(true);
Matrix matrix = new Matrix();
matrix.postScale(5, 5);        

Bitmap viewCapture = Bitmap.createBitmap(drawingCache, 0, 0, 
                                         drawingCache.getWidth(),
                                         drawingCache.getHeight(), 
                                         matrix, true);
imageView.setDrawingCacheEnabled(false);

现在,我正在将这个位图图像“viewCapture”绘制到我的 Canvas 上。在这里,我只想在 Canvas 上渲染图像的一部分。

我尝试使用方法:“Matrix 上的 setRectToRect()”、“canvas.drawBitmap(bitmap、src、dst、paint)”。但是,没有得到适当的解决。

使用 SurfaceViews 有帮助吗?有人遇到过这种情况吗?请发表您的想法/想法。

最佳答案

为什么不直接使用以下内容?

 Canvas.drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)

src 对应于您想要绘制位图的哪个区域,dst 表示您想要绘制位图的位置。您可以在这里阅读更多相关信息:http://developer.android.com/reference/android/graphics/Canvas.html

关于android - 在 Android 中的 Canvas 上显示位图图像的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526513/

相关文章:

php - 使用php创建转置矩阵

android - 空指针错误

Android ListView/ListFragment force single line in row(Java代码)

html - 在缩放的 html 主体上使用 Canvas

javascript - 将自定义删除(后退,前退)按钮添加到控件

optimization - 解决 3d 多边形网格的最佳对齐问题

android - 圆形变为椭圆形

android OkHttp 清除磁盘缓存图像条目

javascript - 通过透明度提高 Canvas 性能

java - 使用邻居递增地计算矩阵中的元素