Android中的selector是一种资源类型,用于定义一组不同状态下的布局样式,它通常与ImageView、Button等控件一起使用,以便在用户与控件交互时改变其外观,selector的基本用法如下:
(图片来源网络,侵删)
1、创建selector文件
在项目的res/drawable目录下创建一个XML文件,例如button_selector.xml,在这个文件中,我们将定义不同状态下的布局样式。
<?xml version="1.0" encoding="utf8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!默认状态 >
<item android:state_pressed="false" android:state_selected="false">
<shape>
<solid android:color="#FF4081" />
<corners android:radius="5dp" />
</shape>
</item>
<!按下状态 >
<item android:state_pressed="true">
<shape>
<solid android:color="#3F51B5" />
<corners android:radius="5dp" />
</shape>
</item>
<!选中状态 >
<item android:state_selected="true">
<shape>
<solid android:color="#9C27B0" />
<corners android:radius="5dp" />
</shape>
</item>
</selector>
2、将selector应用到控件上
在布局文件中,为需要使用selector的控件设置背景属性,引用刚刚创建的selector文件,为一个Button设置背景:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击我"
android:background="@drawable/button_selector" />
3、监听控件状态变化并更新selector
为了在用户与控件交互时更新selector,我们需要在代码中监听控件的状态变化,为上面的Button添加点击事件监听器:
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 切换按钮状态(选中或未选中)
button.setSelected(!button.isSelected());
}
});
这样,当用户点击按钮时,按钮的背景颜色会根据其当前状态(选中或未选中)自动切换。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/679889.html
© 版权声明
文章版权归作者所有,未经允许请勿转载。




