7

現在、各行に最大 3 つの画像を含む本棚を表示する必要がある Android アプリケーションを開発しています。そのためにグリッドビューを使用しています。しかし、グリッドビューで行全体の背景を変更できないという点で立ち往生しています。誰かがこれを行う方法を教えてもらえますか?

グリッドビューに使用されるアダプター

private class SampleGridAdapter extends BaseAdapter{

    private Context context;
    private int[] images = {"R.drawable.img1","R.drawable.img2","R.drawable.img3","R.drawable.img4","R.drawable.img5","R.drawable.img6","R.drawable.img7"};
    public SampleGridAdapter(Context context) {
        super();
        this.context = context;

    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return images.length;
    }
    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub

        View v = null;
        ImageView coverImageView;

        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            v = inflater.inflate(R.layout.bookgrid, null);
            coverImageView = (ImageView) v.findViewById(R.id.coverImageView);   
            coverImageView.setImageResource(images[position]);


            coverImageView.setScaleType(ImageView.ScaleType.FIT_XY);

        return v;
    }
}

bookgrid.xml

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

<ImageView
    android:id="@+id/coverImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:paddingBottom="0dp"
    android:paddingLeft="25dp"
    android:paddingTop="6dp"
    android:src="@drawable/ic_launcher" />
 </RelativeLayout>

gridview 宣言で列数を 3 に設定しました。ここでは、xml ファイルの背景を android:background="@drawable/shelfimage" として設定しています。しかし、それは各アイテムの背景を個別に設定しています......各行の背景として単一の画像を設定したい(3つのアイテムを持つ)....

4

3 に答える 3

2

この例を見ることができます。

于 2013-03-04T11:07:21.893 に答える
1

答えは、あなたの質問に対して私が理解したことに対するものです。

IF の場合、gridview 用のアダプターを使用している場合、アダプター クラスと getView メソッドで位置を確認し、膨張させているレイアウトに色を設定します。アダプタ クラスの getview メソッドでは、特定の位置のインフレート ビューの bg を変更できます。

アダプターを使用してビューを実装した場合、ロジックは機能します。

于 2013-03-04T09:17:46.227 に答える