7

我在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 中心创建的,在它缩小图像之后?然后我如何告诉 imageView,嘿,你现在只是和缩放的图像一样大?

提前致谢。

4

2 回答 2

8

将您的图像视图设置为“调整视图边界”似乎可以解决问题。

这是文档必须说的:

如果您希望 ImageView 调整其边界以保持其可绘制对象的纵横比,请将其设置为 true。

您可以通过使用android:adjustViewBounds="true"或在代码中使用imageView.setAdjustViewBounds(true).

于 2011-08-20T17:29:15.320 回答
1

将“Adjust View Bounds”设置为true,然后将缩放类型设置为“fitXY”,最后调整layout_width和height。您将看到图像调整大小。

于 2013-04-04T17:46:31.360 回答