缩放后图像宽度和高度未正确显示

时间:2016-12-29 19:13:56

标签: android layout scale

我使用

缩放图像
 iv.setScaleX(2);
 iv.setScaleY(2);

但在那之后,我测量宽度和高度。但我只获得初始值。

iv.getWidth();
iv.getHeight();

5 个答案:

答案 0 :(得分:1)

setScale(int value)。此功能用于缩放视图,而不是更改其原始宽度和高度

答案 1 :(得分:1)

矩阵运算后,您将无法获得更改的宽度和高度。如果你不知道你可以使用

获得它的规模
   float scaleX = iv.getScaleX();
   float scaleY = iv.getScaleY();

和比例后的最终宽度和高度

  float finalWidth = iv.getWidth() * scaleX;
  float finalHeight = iv.getHeight() * scaleY;

答案 2 :(得分:0)

改为使用

android:scaleType="fitXY"

android:scaleType="centerCrop"

答案 3 :(得分:0)

0

答案 4 :(得分:0)

  1. 实际上,缩放功能只是在不更改原点宽度/高度大小的情况下缩放图像,因此您无法从getWidth()/ getHeight()获取新大小
  2. 不要使用 width * scale height * scale ,因为在android中,您需要使用整数类型的width高度,这样将返回float值,然后将其转换为int? ->错误的比率

我的解决方案:

您可以getHitRect(rect)函数,它返回围绕该视图的矩形,这在自定义视图中非常有用

val rect = Rect()
getHitRect(rect)
val scaleWidth = rect.width()
val scaleHeight = rect.height()