2

画像が長方形(120 x 58.5)のGirdViewを作成するにはどうすればよいですか?これにより、非正方形のセルになりますか?現在、このXMLレイアウトがある場合、セルは120 x 120であるため、画像の上下に空白があります。各セルの幅は120、高さは58である必要があります。

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/AppsOverviewGrid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:columnWidth="120dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="8dp"
    android:stretchMode="columnWidth"
    android:gravity="center">
</GridView>

助けてくれてありがとう。

4

2 に答える 2

2

私の意見では、理想的な解決策は、(ImageViewを使用して)画像の高さを指定できるグリッドビューレイアウトのアイテムのレイアウトファイルを作成することです。次に、LayoutInflaterでカスタムアダプタを使用して、グリッドビューアイテムをメインレイアウトに接続できます。

これはそのための素晴らしいチュートリアルです(2.例):http ://www.mkyong.com/android/android-gridview-example/

于 2012-08-23T08:47:57.137 に答える
0

このための最も簡単なアプローチは、アダプタでイメージビューの幅と高さを設定することです。

public class ImageAdapter extends BaseAdapter {

 // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(120, 58));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(pictureArray[position]);

        return imageView;
    }

   // references to our images
    private Integer[] pictureArray= {
            R.drawable.pic1, R.drawable.pic2,
     }

}

次に、アダプタをグリッドビューに設定します。

 GridView gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(new ImageAdapter(this));
于 2017-10-19T12:48:31.480 に答える