我如何知道已缩放的图像的大小?
How may I know the size of an image that has been scaled?
我在 XML 中定义了一个 ImageView,如下所示。它在自定义 ViewPager 中。
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:scaleType="fitXY"/>
它工作得很好,但我需要知道图像缩放后的实际高度。我在自定义 ViewPager 的 onMeasure 方法中获取值,如下所示:
View child = getChildAt(0);
child.measure(widthMeasureSpec, MeasureSpec
.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
我得到的高度不是图像缩放后的高度,它是图像缩放前的原始尺寸。
谢谢。
您覆盖 onMeasure 函数以获取图像矩阵并找到比例值。像这样
float[] f = new float[9];
getImageMatrix().getValues(f);
final float scaleX = f[Matrix.MSCALE_X];
final float scaleY = f[Matrix.MSCALE_Y];
// Get the drawable's real width and height
final Drawable d = imageView.getDrawable();
final int origW = d.getIntrinsicWidth();
final int origH = d.getIntrinsicHeight();
// Calculate the actual dimensions
final int actW = Math.round(origW * scaleX);
final int actH = Math.round(origH * scaleY);
log.v("actual dimensions",""+actW+actH);
来源:
我在 XML 中定义了一个 ImageView,如下所示。它在自定义 ViewPager 中。
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:scaleType="fitXY"/>
它工作得很好,但我需要知道图像缩放后的实际高度。我在自定义 ViewPager 的 onMeasure 方法中获取值,如下所示:
View child = getChildAt(0);
child.measure(widthMeasureSpec, MeasureSpec
.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
我得到的高度不是图像缩放后的高度,它是图像缩放前的原始尺寸。
谢谢。
您覆盖 onMeasure 函数以获取图像矩阵并找到比例值。像这样
float[] f = new float[9];
getImageMatrix().getValues(f);
final float scaleX = f[Matrix.MSCALE_X];
final float scaleY = f[Matrix.MSCALE_Y];
// Get the drawable's real width and height
final Drawable d = imageView.getDrawable();
final int origW = d.getIntrinsicWidth();
final int origH = d.getIntrinsicHeight();
// Calculate the actual dimensions
final int actW = Math.round(origW * scaleX);
final int actH = Math.round(origH * scaleY);
log.v("actual dimensions",""+actW+actH);
来源: