【问题标题】:ImageView re-size while setting Image after CroppingImageView 在裁剪后设置图像时重新调整大小
【发布时间】:2013-11-12 13:37:14
【问题描述】:

我按照http://www.androidhub4you.com/2012/07/how-to-crop-image-from-camera-and.html 来裁剪图像。

我在拼贴框架中有 4-5 个 ImageView。在所有 Imageview 中,我设置了默认图像。单击特定的 imageview,我从图库中选择图像,然后裁剪图像。现在我必须在我的 ImageView 中设置裁剪后的图像。因此,在设置裁剪后的图像后,我的 ImageView 会重新调整大小,因此其他 ImageView 的大小也不同。我希望在 Imageview 中设置裁剪后的图像时,我的 ImageView 不能重新调整大小。

裁剪后的图像的大小可能不同,所以我在裁剪前取了 ImageView 大小,裁剪后我将结果位图缩放为与我的图像视图相同的大小。

编码示例被击中。

我正在像这样获取我的 Imageview 的高度和宽度

  viewhight = tempView.getMeasuredHeight();
    viewWidth = tempView.getMeasuredWidth();

裁剪图像后,我像这样根据视图的高度和宽度缩放图像

Bitmap photobitmap1 = Bitmap.createScaledBitmap(photobitmap, viewWidth,viewhight, true);

在此之后,我将其更改为这样的可绘制对象并将其设置在我的 Imageview 上。

 Drawable drawble = new BitmapDrawable(getResources(),photobitmap1);
tempView.setBackground(drawble);

但是在设置我的视图的高度和宽度时,我的视图会被调整大小,并且由于这个近的图像视图也会被调整大小,为什么我不知道。因为我将我的图像视图转换为相同大小的视图。

我也试过这个来缩放位图:

Bitmap photobitmap1 = Bitmap.createScaledBitmap(photobitmap, (viewWidth-30), (viewhight-30), true);

这个来设置位图:

tempView.setImageBitmap(photobitmap1);
 tempView.setBackgroundColor(Color.TRANSPARENT);

但没有任何效果。

我的xml代码是这样的:

   <LinearLayout
                android:id="@+id/fst"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/frame"
                android:orientation="vertical"
                android:paddingBottom="10dp"
                android:paddingLeft="85dp"
                android:paddingRight="85dp"
                android:paddingTop="10dp"
               >

                <ImageView
                    android:id="@+id/viw_1"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_marginBottom="2.5dp"
                    android:layout_weight="1"
                    android:background="@drawable/rec"
                 />

                <ImageView
                    android:id="@+id/viw_2"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:layout_marginTop="2.5dp"
                    android:background="@drawable/rec"
                 />
            </LinearLayout>

谁能帮帮我.....

【问题讨论】:

  • 我不明白你写了什么,你应该加载图像以适应 ImageView,而不是反过来。
  • 请检查我已编辑问题的解释。
  • 这就像我们使用可绘制文件夹中的图像并且它采用默认大小但是如果我们从 drawanle-nodpi 获取而不是在您调整位图大小并设置为时所有设备的大小相同您的体重也会缩放视图,因此将固定尺寸尺寸设置为两个框架或设置请将比例类型设置为两个图像视图(框架)

标签: android resize imageview scale crop


【解决方案1】:

您是否在 XML 中为图像视图设置了固定的高度和宽度? 示例:

<ImageView
    android:layoutWidth="60dp"
    android:layoutHeight="60dp" />

【讨论】:

  • 不,我使用了 wrapcontent 和 match_parent。我也拿了 layout_weight 。所以像这样使用 - android:layout_height="0dp" android:layout_weight="1"
  • 如果您使用 wrap_content 作为图像视图将调整大小的宽度,您需要像上面的代码建议的那样设置一个固定的宽度。
  • 包裹内容会根据图片调整imageview的大小。为图片指定一个固定的尺寸,然后问题就会得到解决
  • 我不能使用固定尺寸,因为它不适用于所有设备分辨率。
  • 如果你使用 'dp' 来指定尺寸,它在所有设备上看起来都是一样的
猜你喜欢
  • 2013-03-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 2014-02-02
相关资源
最近更新 更多