1. 思考:
在多人协同开发 Android 项目时,在导入资源文件或者是图片时,经常会遇到一个问题:一模一样的资源文件被多个人创建了多次,或者是同样一个图片文件被导入多次,造成了资源文件冗余的问题。其主要的原因就是每个人都有自己一套的命名规则,或者是根本没有自己的命名规则,完全凭心情任意命名。所以在这里我根据自己工作中的经验,简单的规范了一套命名规则,方便自己后期查阅。
2. 命名规则:
1. 形状命名规则;
[A]:形状名称_填充色名称_填充色值_s描边线宽(含有小数点用p标识)_描边色名称_描边色值_r圆角大小_圆角方向(先左右,后上下)
// 左上角10dp圆角 纯白色 红色(#fff639b)描边(线宽0.5dp)
corner_white_s0p5_red_ff639b_r10_left_top
形状前缀:
oval - 圆形(shape="oval")
corner - 圆角矩形(shape="rectangle")
rect - 无圆角矩形(shape="rectangle")
line - 线性(shape="line")
line_dash - 虚线(shape="line")
2. 图层的命名规则
以 形状命名规则 为基础,前面添加
layer
即可,一般自取第一层即可
<!--
规则:layer_[A]
举例:
第一层:20dp圆角 无填充色 2.5dp绿色(0feaa9)描边
第二层:20dp圆角 无填充色 1.5dp纯白描边
命名:layer_corner_s2p5_green_0feaa9_r20
-->
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="20dp" />
<stroke
android:width="4dp"
android:color="@android:color/white" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="20dp" />
<stroke
android:width="2.5dp"
android:color="#0feaa9" />
</shape>
</item>
</layer-list>
3. 图片命名规则;
[B]:图片样式_图片特点(填充省略,镂空empty)_主色名称_(对于多个相近主色名称的,可以在此加入主色的色值,正常省略)_图片宽度x图片高度(在1x下面的尺寸(也即 mdpi 下的图片),正方形省略高度)
// 1x 30*30 的白色镂空加号
add_empty_white_30
关于图片 dp 和 px 之间的对应关系,可参照 Android系统屏幕密度
4. 样式或图片selector
命名规则;
- 以选中状态的主色作为命名中的颜色名称;
- 分别在 规则1 和 规则2 的前面加
selector
;
selector_[A]
// 选中:左上角10dp圆角 纯白色 红色(#fff639b)描边(线宽0.5dp)
// 正常:左上角10dp圆角 灰色(#cdcdcd) 红色(#fff639b)描边(线宽0.5dp)
selector_corner_white_s0p5_red_ff639b_r10_left_top
selector_[B]
// 选中:1x 30*30 的白色镂空加号
// 正常:1x 30*30 的灰色镂空加号
selector_add_empty_white_30
5. 文字selector
命名规则;
[C]:ts_s_选中色值_n_正常色值_u_不可用色值
ts_s_333333_n_666666_u_cdcdcd
6. 渐变命名规则;
[D]:gradient_梯度类型_start颜色_center颜色(不存在使用_代替)_end颜色_角度(只有 linear 有,负数前加 _)_c中心点坐标(radial 和 sweep)_r半径(只有 radial 有)
// 梯度类型
line - 线性(type="linear")
radial - 径向(type="radial",此时角度无效不写)
sweep - 扫描(type="sweep",此时角度无效不写)
- 线性示例:
<!--
线性 角度 -45
命名:gradient_linear_fdd3a0_ff639b_1b85ed__45
-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="linear"
android:startColor="#FDD3A0"
android:endColor="#1B85ED"
android:centerColor="#FF639B"
android:angle="-45"/>
</shape>
- 径向示例:
<!--
径向 中心点(0.7, 0.8)半径 210dp
命名:gradient_radial_fdd3a0_ff639b_1b85ed_c0708_r210
-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="radial"
android:startColor="#FDD3A0"
android:endColor="#1B85ED"
android:centerColor="#FF639B"
android:centerX="0.7"
android:centerY="0.8"
android:gradientRadius="210dp" />
</shape>
- 扫描示例:
<!--
扫描 中心点(0.7, 0.8)
命名:gradient_sweep_fdd3a0_ff639b_1b85ed_c0708
-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="sweep"
android:startColor="#FDD3A0"
android:centerColor="#FF639B"
android:endColor="#1B85ED"
android:centerX="0.7"
android:centerY="0.8"/>
</shape>
网友评论