使用setImageMatrix缩放后,Android ImageView获取位图

时间:2016-02-11 02:08:02

标签: android bitmap imageview pinchzoom

在Android中我有一个ImageView,用户可以在UI中操作位置和缩放级别。

是否可以从ImageView获取缩放图像(已更改的图像)而不是原始图像。

以下是我尝试但没有用的方法。

imageView.buildDrawingCache(true);
Bitmap bmp = imageView.getDrawingCache(true);

我可以获得Matrix但不知道如何使用它。

Matrix m =  imageView.getImageMatrix();

2 个答案:

答案 0 :(得分:0)

从ImageView获取Matrix时,对t进行更改,然后使用imageView。setImageMatrix(m)将更改应用回ImageView。您将需要研究使用postScale()矩阵方法之一来更改渲染图像的大小。

答案 1 :(得分:0)

缩放效果应用于“画布”级别。因此,您可以做的就是获取当前的Canvas增强,然后将更改后的位图绘制到新的位图中。

Matrix transformMatrix =  imageView.getImageMatrix()

Bitmap original = bmp;

Bitmap adjusted = Bitmap.createBitmap(original.getWidth(),
 original.getHeight(),
 original.getConfig());
Canvas canvas = new Canvas(adjusted);
canvas.setMatrix(transformMatrix);
canvas.drawBitmap(original, 0, 0, null);

//at this point adjusted bitmap contains the zoomed image