android GridView多项选择改变背景

来源:互联网 发布:淘宝迟迟不发货怎么办 编辑:程序博客网 时间:2024/05/17 03:21

网上看了好几个写法,感觉写的好复杂,自己写了一下:

先看效果:


首先是item的布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center"    >    <ImageView        android:id="@+id/sport_iv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/kung_fu_0"        android:background="@drawable/kung_fu_bg"        />    <TextView        android:id="@+id/sport_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textColor="@color/write"        android:textSize="@dimen/sport_title_text_size"        /></LinearLayout>


其中android:background="@drawable/kung_fu_bg"背景需要重写

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="false" android:drawable="@drawable/kung_fu_bg_normal" />    <item android:state_pressed="true" android:drawable="@drawable/kung_fu_bg_pressed" />    <item android:state_selected="false" android:drawable="@drawable/kung_fu_bg_normal" />    <item android:state_selected="true" android:drawable="@drawable/kung_fu_bg_pressed" /></selector>


代码里点击的时候只需要:

mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        ImageView sportImageView = (ImageView) view.findViewById(R.id.sport_iv);        if (sportImageView.isSelected() == false) {            sportImageView.setSelected(true);            sportImageView.setPressed(true);        } else {            sportImageView.setSelected(false);            sportImageView.setPressed(false);        }    }});






原创粉丝点击