圆角listview与item的背景共存问题

之前一直在纠结圆角listview的item项的背景问题,点击、松开时背景更换。我自己的思路是先设置item的圆角背景,再设置listview的android:listSelector="***",此属性表示listview的item在点击的时候样式变化设置。但是最后发现有圆角但是点击无效果。我把两个背景xml文件互换,也只有点击效果没有圆角了,囧。。。百度了好久整理了下得到了如下的解决方案:

activity 的布局文件无关紧要,有listview就好,在listview中无需设置什么特殊的属性( android:divider="#000000",取消item之间的横线),item类似,关键是item的背景文件test.xml,代码如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 3 
 4     <item android:drawable="@drawable/app_list_corner_round" android:state_focused="true" android:state_pressed="true"/>
 5     <item android:drawable="@drawable/app_list_corner_round" android:state_focused="true" android:state_pressed="false"/>
 6     <item android:drawable="@drawable/app_list_corner_round" android:state_focused="false" android:state_pressed="true"/>
 7     <item android:drawable="@drawable/app_list_corner_round" android:state_checked="true"/>
 8     <item android:drawable="@drawable/app_list_corner_round_normal"/>
 9     
10     
11     </selector>

表示当点击item时,该item的背景样式按app_list_corner_round.xml配置执行。当松开item时按app_list_corner_round_normal.xml配置执行。

其中的app_list_corner_round.xml代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <shape xmlns:android="http://schemas.android.com/apk/res/android">
 3     
 4      <corners android:topLeftRadius="10dp"
 5         android:topRightRadius="10dp"
 6         android:bottomLeftRadius="10dp"
 7         android:bottomRightRadius="10dp"/>
 8     <gradient android:startColor="#BFEEFF" 
 9         android:endColor="#40B9FF" 
10         android:angle="270"/>
11     
12     <solid android:color="#3CC4C4"/>
13     
14 </shape> 

corners  各个方向的圆角弧度设置;

gradient  背景渐变色设置;

solid  背景色;(二选一)

其中的app_list_corner_round_normal.xml代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:shape="rectangle" >
 4 
 5     <stroke
 6         android:width="1px"
 7         android:color="@color/gray" />
 8 
 9     <solid android:color="@color/white" />
10 
11     <corners
12         android:bottomLeftRadius="10dp"
13         android:bottomRightRadius="10dp"
14         android:topLeftRadius="10dp"
15         android:topRightRadius="10dp" />
16 
17 </shape>

这样就可以解决圆角和item的背景共存的问题了。

 

 

posted @ 2014-01-16 21:48  寡蛋  阅读(1377)  评论(0)    收藏  举报