更改android中单行gridview的背景

akh*_*akh 7 android gridview android-layout android-gridview

我正在开发一个Android应用程序,它需要显示一个书架,每行最多包含3个图像.我正在使用gridview.但我陷入了一点,我无法改变gridview中整行的背景.谁能告诉我怎么做?

用于gridview的适配器

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

我在gridview声明中将列数设置为3.这里我将xml文件中的背景设置为android:background ="@ drawable/shelfimage".但它分别为每个项目设置背景......我想将每个图像设置为每个行的背景(有3个项目)....

Rah*_*til 1

答案是我对你问题的理解。

如果在这种情况下,您正在使用一些 gridview 适配器,则在适配器类和 getView 方法中检查位置并将颜色设置为您正在膨胀的布局。在适配器类 getview 方法中,可以针对特定位置更改膨胀视图的背景。

如果您使用适配器实现了视图,则逻辑可以工作。