为什么即使在缩放后,Drawable的getBounds()仍保持不变?

时间:2014-03-16 19:11:47

标签: android imageview drawable

我使用ImageView在我的项目' assets'下显示一个jpg文件。文件夹,内在尺寸为:1280x854,我通过调用myDrawable.getIntrinsicWidth()和myDrawable.getIntrinsicHeight()来确认。

我的图像视图实现了缩放缩放,因此图像缩放到例如2倍。然后执行以下代码:

Drawable drawable = getDrawable();
Rect bounds =drawable.getBounds();
Log.i("activity", String.format("drawalbe : top:%d, left: %d, (%d, %d)", bounds.top, bounds.left, bounds.width(), bounds.height())); 

无论当前比例是多少,可绘制边界总是1280x854,而左上角总是0,0。

是否应该相应地缩放界限?谁能给我一些提示?谢谢。

1 个答案:

答案 0 :(得分:1)

这是因为this

比例矩阵仅影响视图的绘制方式,但不会改变其尺寸。

虽然您可以创建一个与图像大小相同的矩形,并将相同的比例矩阵应用于带有Matrix.mapRect(Rect r)的Rect,而Rect将具有缩放的尺寸。