Android ImageView被裁剪

时间:2014-07-25 13:45:23

标签: android imageview scale

首先,这里有一个图解来说明我的问题: Graphic

在左侧图片上,您可以看到它应该如何显示。这也是AndroidStudio在预览中显示的方式。但是,如果我在模拟器上运行它,它会裁剪图像,只留下深绿色部分。 (右图)

<ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/img_header"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:focusableInTouchMode="false"
        android:src="@drawable/header"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop" />

父视图:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".menu">

我尝试了不同的scaleTypes,但没有任何东西可以让我得到我想要的结果。 这不是我第一次使用ImageViews,但我第一次无法自己解决问题......

如果我删除&#34; adjustViewBounds&#34;预览显示与设备/模拟器相同的结果。如果这是某人的暗示。

编辑:我创建了第二个版本的标题,它的大小是它的两倍。现在它适用于&#34; fitXy&#34;和&#34; adjustViewBound(true)&#34;。但为什么?原始图像的高度为512px,这应该足以使adjustViewBounds保持纵横比。

1 个答案:

答案 0 :(得分:0)

听起来你想要CENTER_INSIDE:

android:scaleType="centerInside"
  

public static final ImageView.ScaleType CENTER_INSIDE

     

在API级别1中添加统一缩放图像(维护图像)   纵横比)使图像的两个尺寸(宽度和高度)   将等于或小于视图的相应维度   (减去填充)。然后图像在视图中居中。从XML,使用   语法:android:scaleType =“centerInside”。

同时

问题可能是adjustViewBounds不会增加ImageView的大小超出drawable的自然尺寸。