selector的两种设置方式

1、xml方式

直接在drawable文件夹中添加一个xml文件


<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/icon_press" android:state_pressed="true"/>
    <item android:drawable="@drawable/icon_select" android:state_selected="true"/>
    <item android:drawable="@drawable/icon_default"/>
selector>

然后将该xml直接设置为控件的background即可

2.动态添加

在java代码中动态添加一个selector

StateListDrawable selector = new StateListDrawable();

Drawable pressDrawable = getResources().getDrawable(R.drawable.pressDrawableId);
Drawable selectDrawable = getResources().getDrawable(R.drawable.selectDrawableId);
Drawable defaultDrawable = getResources().getDrawable(R.drawable.defaultDrawableId);


selector.addState(new int[]{android.R.attr.state_pressed}, pressDrawable);
selector.addState(new int[]{android.R.attr.state_selected}, selectDrawable);
// 添加一个默认状态, 默认状态必须写在其他状态的最后面, 否则其他状态失效
selector.addState(new int[]{}, defaultDrawable);

然后将该select动态设置为控件背景

你可能感兴趣的:(android,java,开发语言,selector)