我正在使用ImageView来显示图像。有一个“Image--”按钮,当我点击它时,ImageView将使用矩阵来缩放图像。问题是,图像最终太小而无法看到。
你可以看到我的例子。
原始图片:
点击“Image--”按钮12次后:
你可以看到沙发图像很小,现在很难看到。
我的“main.xml”内容是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/root" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- buttons -->
</LinearLayout>
<ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:background="#336699"
android:scaleType="matrix"/>
</LinearLayout>
我的java代码是:
this.btnImageZoomOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Matrix matrix = new Matrix(imageView.getImageMatrix());
matrix.postScale(0.8f, 0.8f);
imageView.setImageMatrix(matrix);
imageInfo();
}
});
我的问题是:如何让沙发图像缩小到指定尺寸?例如原始尺寸的1/5?
更新
如果我可以获得缩放沙发图像的大小,则很容易检查图像是否太小。但我尝试了很多,仍然没有得到它,这就是我问这个问题的原因。我想念一下吗?
答案 0 :(得分:0)
难道你不能检查80%的照片有多大,如果它比你想要的小,那么不做尺度吗?如果尺寸太小,可能会禁用缩小按钮?
答案 1 :(得分:0)
我认为使用Layoutparams(它将为您提供图像的大小)而不是Matrix可能更容易,因为您无论如何都需要大小。这可能是缩小的onClick方法:
imageView.setScaleType(ScaleType.FIT_XY);
LayoutParams layoutParams=imageView.getLayoutParams();
layoutParams.height*=0.8f;
layoutParams.width*=0.8f;
if(layoutParams.height>scaled_specified_size_in_px && layoutParams.width>scaled_specified_size_in_px){
imageView.setLayoutParams(layoutParams);
}
请注意,您需要在其中设置缩放值,或者您只需将其限制为原始大小的百分比(您需要保存原始大小)。