1

如果我有一组相同大小的图像 211px x 165px ,如何在保持高度和宽度之间的原始比例的情况下使用网格视图显示它们。需要在每行中显示两个项目。我已经可以做到这一点,但图像看起来是垂直拉伸的。这是我得到的截图。请注意,gridview单元格比图像大 在此处输入图像描述

gridview布局 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg"
    android:orientation="vertical" >

    <include
        android:id="@+id/include1"
        layout="@layout/header" />
    <GridView
        android:id="@+id/gvCategory"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="0dp"
        android:background="@drawable/bg"
        android:gravity="right"
        android:horizontalSpacing="5dp"
        android:numColumns="2"
        android:padding="0dp"
        android:verticalSpacing="5dp" >
    </GridView>

</LinearLayout>

gridview 单元格布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/include21nh"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <FrameLayout
        android:id="@+id/include21"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/btn"
        android:padding="5dp" >

        <ImageView
            android:id="@+id/imgCategoryImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerInside"
            android:src="@drawable/img1" />

        <TextView
            android:id="@+id/txtCategoryName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_gravity="bottom"
            android:background="@drawable/transparent_fading"
            android:gravity="right"
            android:padding="15dp"
            android:text="Crispy Chicken and Sandwich"
            android:textColor="#ffffff"
            android:textSize="17sp" />

    </FrameLayout>

</LinearLayout>
4

1 回答 1

1

您应该android:scaleType="centerInside"ImageView代表GridView. 正如文档所说:

CENTER_INSIDE - 统一缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)都等于或小于视图的相应尺寸(减去填充)。

你可以在这里找到更多信息。希望这可以帮助。

于 2012-09-28T17:29:31.870 回答