1

我在我的android应用程序中有使用gridview的imageview。所以在gridview中按下图像时,背景颜色想要改变。如果我返回,它将变为正常的背景颜色。如何做到这一点?谁能帮我解决这个问题问题?

这是我的代码

public class CustomGridViewExample extends Activity {

    private Integer[] mThumbIds = {
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,


            };


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new MyAdapter(this));
        gridview.setNumColumns(4);
    }

  public class MyAdapter extends BaseAdapter {

        private Context mContext;

        public MyAdapter(Context c) {
            mContext = c;
        }

        @Override
        public int getCount() {
            return mThumbIds.length;
        }

        @Override
        public Object getItem(int arg0) {
            return mThumbIds[arg0];
        }

        @Override
        public long getItemId(int arg0) {
            return arg0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) { 

            View grid;

            if(convertView==null){
                grid = new View(mContext);
                LayoutInflater inflater=getLayoutInflater();
                grid=inflater.inflate(R.layout.mygrid_layout, parent, false);
            }else{
                grid = (View)convertView;
            }

            ImageView imageView = (ImageView)grid.findViewById(R.id.image);
            imageView.setImageResource(mThumbIds[position]);

            return grid;
        }

    }

相关的 XML 文件如下:

<GridView 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"
    android:scrollbars="none" />

mygrid_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/customshape_header"
    android:orientation="vertical">
    <ImageView 
        android:id="@+id/image" 
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"/>



</RelativeLayout>
4

2 回答 2

3

在您的 Drawable 文件夹中创建 grid_selector.xml。然后编辑以下内容::`

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/green" android:state_pressed="true"/>
    <item android:drawable="@color/blue" android:state_selected="true"/>
    <item android:drawable="@color/white"/>

</selector>`

然后在你的 mygrid_layout.xml 文件中将此文件设置为相对布局中的背景..

于 2012-09-06T04:52:19.657 回答
0

在您的 mygrid_layout.xml 中,使用您需要的颜色作为背景的相对布局选择器。

于 2012-09-05T10:37:42.373 回答