Android中的Selector主要是用来改变ListView和Button控件的默认背景。其使用方法可以按一下步骤来设计: (以在mylist_view.xml为例) 1.创建mylist_view.xml文件 首先在res目录下新建drawable文件夹,再在新建的drawable文件夹中新建mylist_view.xml,其目录结构为:res/drawable/mylist_view.xml。 2.根据具体需求编辑mylist_view.xml文件 新建mylist_view.xml文件后,在没有添加任何属性时其内部代码结构为: 下面就可以根据项目需求,在其内部定义为自己想要的样式了,主要属性如下: 3.引用mylist_view.xml文件 三种方法可以来引用刚才创建的文件: (1)在ListView中添加如下属性代码 (2)在ListView的item界面中添加如下属性代码 (3)利用JAVA代码直接编写 为了防止列表拉黑的情况发生,需要在ListView中添加以下的属性代码 属性介绍: android:state_selected选中 android:state_focused获得焦点 android:state_pressed点击 android:state_enabled设置是否响应事件,指所有事件 selector中的每个item,也可指定为shape,下面为shape用法: shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas./apk/res/android" > <!-- 圆角 --> <corners android:radius="9dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp"/><!-- 设置圆角半径 --> <!-- 渐变 --> <gradient android:startColor="@android:color/white" android:centerColor="@android:color/black" android:endColor="@android:color/black" android:useLevel="true" android:angle="45" android:type="radial" android:centerX="0" android:centerY="0" android:gradientRadius="90"/> <!-- 间隔 --> <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp"/><!-- 各方向的间隔 --> <!-- 大小 --> <size android:width="50dp" android:height="50dp"/><!-- 宽度和高度 --> <!-- 填充 --> <solid android:color="@android:color/white"/><!-- 填充的颜色 --> <!-- 描边 --> <stroke android:width="2dp" android:color="@android:color/black" android:dashWidth="1dp" android:dashGap="2dp"/> </shape> 填充:设置填充的颜色 间隔:设置四个方向上的间隔 大小:设置大小 圆角:同时设置五个属性,则Radius属性无效 android:Radius="20dp" 设置四个角的半径 android:topLeftRadius="20dp" 设置左上角的半径 描边:dashWidth和dashGap属性,只要其中一个设置为0dp,则边框为实现边框 android:width="20dp" 设置边边的宽度 渐变:当设置填充颜色后,无渐变效果。angle的值必须是45的倍数(包括0),仅在type="linear"有效,不然会报错。android:useLevel 这个属性不知道有什么用。 angle对应值的起点如图: |
|