在GridView上保持背景的宽高比

时间:2012-06-30 20:58:07

标签: java android gridview

我在GridView上有一个图像作为背景,我希望它保持其宽高比。 我希望它与手机的高度相匹配,并使用与宽高比相匹配的宽度。

以下是当前代码:

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/gridview"
android:scaleType="centerInside"
android:background="@drawable/gytbg"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:columnWidth="10dp"
android:numColumns="2"
android:verticalSpacing="20dp"
android:horizontalSpacing="0dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>

1 个答案:

答案 0 :(得分:1)

android:scaleType="centerCrop"

这应该使图像适合GridView的高度,保持纵横比,并裁剪剩余的宽度(除非图像的宽度小于匹配高度时GridView的宽度)。

E.g。

如果你的GridView宽度为400dp,高度为800dp

600 x 600的图像将适合高度,然后裁剪剩余的宽度。

然而,如果GridView是横向的(宽度为400dp,高度为300dp),则600 x 600图像将适合宽度,然后裁剪高度。

如果您只想要它适合高度(假设高度可能会以编程方式或由于设备的不同屏幕而改变),我建议将图像设置得相当宽,以便即使在呈现具有非常宽广的方面的GridView时也是如此比率,它将选择适合高度,并裁剪宽度。