前言:当我们使用Listview 等加载布局生成item时,或者单独使用button textview这些控件的时候,你或许或碰见这样的需求,点击时按钮或者textView的背景是一种状态,点击后是一种状态。这时我们可以使用Selector来实现。
1.建立相关的资源文件
(drawable 文件夹下创建)
image.png
2 我们画个如下图的图案(按钮的背景色 点击是一种状态,未点击是一种状态,当然你也可以设置为摁下是一种状态,松开是一种状态,是需求而定)
image.png
布局代码编写
3 使用
你的在按钮属性中把他的背景设置为这个你创建的xml文件即可
4 属性标签解释
selector 选择器标签 为根标签 你创建选择器时默认生成
item 子标签
属性有state_xxx 表示不同的状态
例如_enabled 可用时
_pressed 摁压时
drawable 属性 可设置背景图案
shape item的子标签 一般我们设置自定义的图案时会使用此标签
此标签有shape属性 属性值为不同的图案。
值如图
image.png
shape的子标签
solid 汉语意思 固体 顾名思义 就是图案内部填充色
size 大小 可设置图案的宽高
corners 圆角 属性radius设置半径
还有没提到属性自行百度哈哈 😄
小结:中间的一些坑,在此xml中你使用颜色的时候或许会直接#xxx(例如#ccc),这时你使用Listview 或者recyclerView 使用 inflate 吧布局转换为view时 或许会报错xml转换错误,此时你只需要引用color.xml文件中定义的就行了。如下图(color.xml 中颜色 自己写一套就行了
)
image.png
项目中碰见在这里总结一下 😁