主要是总结了自己在开发过程中觉得可以比较好的方案,针对的是资源的命名。
命名规则
包括布局文件,自定义drawable,图片,color,string等
布局文件
主要是Activity
,Fragment
,Dialog
,DialogFragment
,PopupWindow
,RecycleView
等列表的ItemView,菜单Menu,还有我们可以通过include
等标签可以直接引入的通用布局
1.Activity
,Fragment
,Dialog
,DialogFragment
,PopupWindow
等主布局文件
1 | 他们需要以模块名为前缀,类型为中缀,具体的业务名为后缀,比如home模块的扫描主布局文件,则是 |
- Item类型,命名规则是模块名称+
item
+所属功能1
2例如我们home模块的订单RV的item,则可以是
home_item_order include
,viewstub
,merge
三个标签,命名规则是模块+标签名称+所属功能1
2例如我们home模块有一个可以通用的分割线,使用include标签,则是
home_include_divider
我们假如是通用的多个模块可复用的xml布局,可以下层到最底层的base
or common
模块,然后以base_
或者是common_
开头即可。
图片命名
首先,我们的图片从类型区分可以分为一般的png
,jpeg
,gif
,webp
,.9
图,可能还会有一些矢量图或者是其他的图片。从作用上,我们一般可以分为
- 单纯的背景图
- 箭头图片
- 内容图片
其中还会有一些是下层在底层模块的通用图等,一般建议的命名是:所属模块+[类型](可选)+[颜色](可选)+[方向](可选)+[粗细](可选)+名称,主要的逻辑是:模块名+需要区分的属性+作用,一种图片的多种模式需要加一些修饰池(比如白色和黑色的右箭头),专用的图片就模块+描述即可
1 | 例如: |
drawable命名
这里主要是指自定义类型的。
- shape命名
我们这块会用的比较的多,不同的背景,圆角,边框等。建议是使用模块+shape类型+使用的属性+标识。比如shape常用的solid
,corners
,stroke
等,应该加上自己的描述符,例如
1 | <shape xmlns:android="http://schemas.android.com/apk/res/android" |
假如位于common
模块,则是common_rect_sffffff_c10_stb76e00
。
类型的简写描述建议:
1 | rectangle->rect 表示,可省略,因为我们一般使用的就是rectangle |
内部属性的描述简写建议:
1 | solid -> s+颜色 |
注意他们的是使用_
,属性与值之间不用。假如是有命名重复的,则使用后缀_0x
分割,比如上面xml的还有一个stroke
颜色一样但是尺寸不一样的,命名common_rect_sffffff_c10_stb76e00_02
,也可以不要rect
关于shape,我不建议是加上类似_bg
这样的去表示作为背景使用,感觉它应该是可以都使用的。
- selector
建议命名:模块+selector+类型+主颜色/图片名称+其他(比如有圆角则带上r+尺寸
)。
我们在使用selector的时候,基本是内部搭配的item要么drawable,要么是图片。然后呢,一般会有一个主颜色&其他的颜色,而且为了样式统一,一般都是会固定对应,所以描述里面使用一个主颜色描述。比如我们需要给按钮一个按下时和普通情况的两种状态的颜色表示,则是common_selector_press_ffffff
,表示普通模式下为白色的样式。
假如是无法覆盖命名的情况,则后缀添加_0x
color命名
建议是以模块+色值+[透明度]表示,比如85%的白色,只在home模块使用,则是home_ffffff_85
string命名
建议是以模块开头,加上见文知意的描述即可
style命名&attr自定义属性&anim动画定义
这些会用的比较的少,所以其实是可以按照实际去,一般只要以模块为开头接类型,比如动画的则是home_anim_xxx
等
总结
做资源的命名规范主要是为了避免重复定义资源,也方便查找资源,我们只需要打印一些需要的文字即可索引提示出来。统一一个规范,你好我好大家好。