android: 我的drawable文件命名规则
如果使用xml文件来给各种控件设置背景,那么就会出现一个问题:
随着项目不断维护升级,最后会出现很多各种背景,然而,如果都按照控件用途来命名,会很难发现那些本来可以重用的xml文件,导致写出一堆的重复代码。
解决办法就是统一命名规则,最好符合以下要求:
- 不同点开xml文件,一眼就能看出它的各种特征,包括:形状/圆角大小/填充色/边框色等等。
- 类似的文件符号名字排序分类规律,能够快速定位查找。比如形状一样的都在一起。
- 文件名不用太长,太长找起来也累。
虽然有一个很好用的selector
自动生成插件 android-selector-chapek ,但是它需要符合它的命名规则,要指定各种状态,而我们随着开发不断增改需求,可能之前的pressed
状态会成为其他按钮的normal
状态,还是会出现重复,所以决定不使用。
最后总结的shape
和selector
命名规则如下:
Shape
- rectangle:
rect_radius_[_tl_tr_bl_br]_colorSolid[light]_colorStroke[dark]
解释:
tl:topLeft
br:bottomRight
举例:
rect_16_tl_tr_bluelight_greendark
一个左上-右下圆角为16dp,填充色为浅蓝色,边框为深绿色的shape
- oval
ovalName_size1_[size2]_solidColor_strokeColor
- circle:
circle_size_solidColor_strokeColor
举例:circle_24_redlight_reddark - oval:
oval_width_height_solidColor_strokeColor
举例:oval_24_16_yellowlight_bluedark
其他的line
、ring
用的比较少,其实规则也类似。
Selector
sel_shapeName_radius_[stroke]_[tl_tr_bl_br]_normalSolidColor_pressedSolidColor
解释:
shapeName: 形状名,可选:rect/circle/ovald等等
radius: 圆角大小
stroke: 是否包含边框
normalSolidColor: 普通状态下的填充色
pressedSolidColor: 按下状态下的填充色
举例:
sel_rect_6_stoke_white_blue 一个圆角大小为6dp包含边框,普通状态白色,按下时蓝色的selector
。
终于,drawable
目录下的世界清净了!