我在android中的imageview中有一个图像。
我使用scaletype(MATRIX)通过类似下面的代码缩放图像:
mtrx.postScale(scale, scale);
imageView.setImageMatrix(mtrx);
imageView.setScaleType(ScaleType.MATRIX);
imageView.invalidate();
现在,这可以正确调整ImageView中包含的图像的大小,这很不错,但我需要的是将图像重新定位到imageview中的位置0,0,然后将imageView本身的大小调整为缩放图像的大小
到目前为止,我想出的每个想法都试图重用相同的imageView似乎不起作用,或者我只是做错了。
我唯一的方法是破坏图像视图,调整位图大小,创建一个包含大规模创建的新位图并将视图添加回布局的新图像视图?
我真的不喜欢这样做..我正在碰到16 Meg堆限制,因为它与事物有关。如何告诉矩阵将图像移动到imageView中的0,0位置(imageView最初是用scaletype center创建的,之后它将图像缩小了?然后如何告诉imageView,嘿,你现在只是和缩放的图像一样大吗?
提前致谢。
答案 0 :(得分:8)
将图像视图设置为“调整视图边界”似乎可以解决问题。
以下是文档的内容:
如果希望ImageView调整其边界以保持其drawable的宽高比,请将此项设置为true。
您可以使用android:adjustViewBounds="true"
或代码imageView.setAdjustViewBounds(true)
来执行此操作。
答案 1 :(得分:1)
将“调整视图边界”设置为true,然后将比例类型设置为“fitXY”,最后调整layout_width和height。您将看到图像调整大小。