如何在XML中拉伸图像

时间:2014-10-25 08:33:20

标签: android eclipse

我的图像分辨率小于设备的屏幕。如何拉伸它以适应宽度,但也可以缩放高度。当我将android:src更改为background时,它适合宽度,但不适合高度。

这是我的代码:

<ImageView 
    android:id="@+id/calculations"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/calculations"
    android:visibility="gone" /> 

编辑:我在低分辨率设备上尝试过它很小,但是当我在全高清设备上试用它时,它没问题。为什么呢?

2 个答案:

答案 0 :(得分:0)

您只需将android:adjustViewBounds设置为true即可。这个属性有什么作用?好吧,从d.android.com (click)开始:

  

如果希望ImageView调整其边界,请将此项设置为true   保留其可绘制的宽高比。

所以你的结果应该是这样的:

<ImageView 
    android:id="@+id/calculations"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/calculations"
    android:adjustViewBounds="true"
    android:visibility="visible" /> 

修改

所以你绘制的问题是,它的大小比它的宽度大。这就是为什么景观模式中有这么多空白的原因。见下图:

enter image description here

要解决此问题,您应该将android:scaleType设置为fitXY,这会拉伸您的图像并且不会保持宽高比,或者centerCrop将会缩小图像的一部分并保持纵横比。结果将是这样的:

enter image description here

注意:我猜这些都不是你真正想要的。因此,您应考虑使用XMLTextViews通过Views创建此图片,而不是使用如此复杂的图片。

答案 1 :(得分:0)

在你的imageview中尝试scaletype fitXY

<ImageView 
android:id="@+id/calculations"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/calculations"
android:adjustViewBounds="true"
android:visibility="visible"  
android:scaleType="fitXY" />