mGridView.setSelector(new ColorDrawable(Color.TRANSPARENT));(mGridView为Gridview对象)这句放在java代码里,作用是去掉按下Gridview某个item时背景显示极其难看的黄色。
xml布局文件代码:
<GridView
android:id="@+id/gvFileChooser"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="70dp"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:layout_above="@id/btExit"
android:clickable="true"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
/>
在填充Gridview的布局文件中的根ViewGroup组建加入:style/grid_view;
其中填充Gridview的布局文件代码如下,这里的根ViewGroup为RelativeLayout
<?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"
style="@style/grid_view"
>
<ImageView
android:id="@+id/file_chose_item_image"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_centerHorizontal="true"
android:scaleType="center" >
</ImageView>
<TextView
android:id="@+id/tvFileName"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_below="@id/file_chose_item_image"
android:singleLine="true"
android:layout_centerHorizontal="true"
android:gravity="center">"
</TextView>
</RelativeLayout>
"@style/grid_view"中的style如下:
<style name="grid_view">
<item name="android:background">@drawable/grid_view_selector</item>
</style>
其中@drawable/grid_view_selector中的grid_view_selector为放在drawable文件夹下面的selector,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/puregray" android:state_pressed="true"/>//按下Gridview,其中的purewhite为自定义颜色
<item android:drawable="@color/purewhite" android:state_pressed="false"/>//未按下GridView,其中的purewhite为自定义颜色
</selector>
本人这样设置完按下时为灰色,未按下状态为白色。