安卓selector使用方法

在安卓开发中很多地方都会用到selector选择器,下面总结以下使用规则:

1.选择器中一些常用状态:

android:state_press是否按下,如一个按钮触摸或者反击
android:state_focused是否取得焦点,比如用户选择了一个文本框
android:state_hovered光标是否悬停,通常与focused state相同,它是4.0的新特性
android:state_selected被选中,它与focus state并不完全一样,如一个listView被选中的时候,他里面的各个子控件,可能通过方向键,被选中了。
android:state_checkable 组件是否能够被check.如RadioButton是可以被checkd的
android:state_checked被checked了,如:一个RadioButton,CheckTextView,CheckImageView
android:state_enable 能够接受触摸或者点击事件
android:state_activated 被激活
android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了,有的需要加android:focusable和android:clickable为true才能获取焦点

举个栗子,下面是CheckedTextView的使用:

一:修改背景图片

selector.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:drawable="@mipmap/indexa" android:state_checked="true" />
    <item  android:drawable="@mipmap/indexb" android:state_checked="false"/>
</selector>

主布局文件:

<CheckedTextView
                android:id="@+id/imageView_shop"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:background="@drawable/shopindex"
                />

有了这两个文件,就可以在java代码中进行控制,调用setChecked()方法,设置true或false,从而进行选择。

Java代码:

textView_main.setChecked(false);
textView_shop.setChecked(true);
textView_me.setChecked(false);

当设置为ture时,就相当于使用图片a,设置为false时,相当于使用图片b。

二:修改字体颜色(与修改背景图片基本一样,只是selector.xml有个地方需要修改)

selector.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#0000FF"/>
    <item android:state_checked="false" android:color="#D8DDE1"/>
</selector>

原来item中为android:drawable,加载的是图片资源,那么如果是颜色的话,就应该使用android:color

效果图:

猜你喜欢

转载自blog.csdn.net/CjhLoveAndroid/article/details/82696116
今日推荐