1

同じサイズの211pxx165pxの画像のセットがある場合、高さと幅の元の比率を維持しながら、グリッドビューでそれらを表示する方法。各行に2つのアイテムを表示する必要がある場合。私はすでにそれを行うことができましたが、画像は垂直に引き伸ばされて表示されます。これが私が得たもののスクリーンショットです。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"内で属性を使用する必要があります。ドキュメントが言うように:ImageViewGridView

CENTER_INSIDE - 画像の両方の寸法 (幅と高さ) がビューの対応する寸法 (パディングを引いたもの) 以下になるように、画像を均一にスケーリングします (画像の縦横比を維持します)。

詳細については、こちらをご覧ください。お役に立てれば。

于 2012-09-28T17:29:31.870 に答える