0

我正在使用 ImageView 来显示图像。有一个“Image--”按钮,当我点击它时,ImageView 将使用一个矩阵来缩放图像。问题是,图像最终会太小而无法看到。

你可以看看我的例子。

原图:

在此处输入图像描述

单击“图像--”按钮 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?


更新

如果我能得到缩放沙发图像的大小,就很容易检查图像是否太小。但是我尝试了很多,仍然没有得到它,这就是我问这个问题的原因。我错过了什么吗?

4

2 回答 2

0

你不能检查一下80%的照片有多大,如果它比你想要的小,不要做比例吗?如果尺寸太小,也许禁用收缩按钮?

于 2012-08-30T14:52:38.880 回答
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);
  }

请注意,您需要在那里有一个缩放值,或者您可以简单地将其限制为原始大小的 %(您需要保存原始大小)。

于 2012-08-30T15:03:01.170 回答