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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复