Android GridView Selected Item 按下时背景颜色变化

标签 android gridview background imageview background-color

我的 imageview 在我的 android 应用程序中使用 gridview。所以在 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>

最佳答案

在您的 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 文件中将此文件设置为相对布局中的背景..

关于Android GridView Selected Item 按下时背景颜色变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12279300/

相关文章:

android - 运行 Traceview 方法分析时 MediaCodec 不返回缓冲区

c# - 错误 GridView 'GridView1' 触发了未处理的事件排序

Android - 在我以编程方式完成后缩放图像

java - 如何去除Android中自定义对话框的白边?

android - 设置 android datepicker 日期限制

android - 用自身替换 fragment 不会显示任何内容

安卓: GridView

asp.net - Gridview RowUpdating 事件未触发

html - Canvas 背景和 HTML <body> 元素

c++ - 不同类型气候条件的颜色编码背景