在Android中我有一个ImageView,用户可以在UI中操作位置和缩放级别。
是否可以从ImageView获取缩放图像(已更改的图像)而不是原始图像。
以下是我尝试但没有用的方法。
imageView.buildDrawingCache(true);
Bitmap bmp = imageView.getDrawingCache(true);
我可以获得Matrix但不知道如何使用它。
Matrix m = imageView.getImageMatrix();
答案 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