在工作中,有许多刚入行的小白,不懂得命名,
例如用汉语拼音命名,中文版英语等!
命名方式非常重要,小白需要多学习一下,
以下是参照 《阿里开发手册》总结的知识点
以及自己的开发经验的小总结。
一、资源文件需带模块前缀。
所有可以从中读取出需要的资源的文件,可以称之为“资源文件”。
资源的类型可以是图片、音频、视频、文字资源,或者其他可以在计算机中展示的内容等等。
这里的资源文件就拿png图片举例子:(具体详情 请看下面第三条 所示)
例如:
local_icon_usb_normal.png // 本地 USB 图标 正常显示
local_icon_usb_press.png // 本地 USB 图标 按下
二、布局文件 的 命名方式。
布局 | 命名方式(以开头) |
Activity | module_activity |
Fragment | module_fragment |
Dialog | module_dialog |
include | module_include |
ListView 的 行 | module_list_item |
RecyclerView 的 item | module_recycle_item |
GridView 的 行 | module_grid_item |
三、 drawable命名
drawable 资源名称以小写单词+下划线的方式命名,根据分辨率不同存放在不同的 drawable 目录下,
建议只使用一套,例如 drawable-xhdpi。
个人总结:
因为我是做车机项目 我写的项目都是宽高定死的 所以 一般把 png 等格式图片放入到 drawable-nodpi 文件夹中。
drawable-nodpi 介绍:把一些不能被拉伸的图片放在 drawable-nodpi 中,此图片将不会被放大,以原大小显示。
采用规则如下:
模块名_业务功能描述_控件描述_控件状态限定词如:
module_login_btn_pressed
module_tabs_icon_home_normal
四、anim命名
anim资源名称以小写单词+下划线的方式命名,采用以下规则: 模块名_逻辑名称_[方向|序号]
tween 动画资源:尽可能以通用的动画名称命名,如:
module_fade_in
module_fade_out ,
module_push_down_in (动画+方向);
frame 动画资源:尽可能以 模块+功能命名+序号 。如:
module_loading_grey_001
五、color 命名
color 资源使用 #AARRGGBB 格式,写入 module_colors.xml 文件中,命名格式采用以下规则:
模块名_逻辑名称_颜色 ,如:(关于AA 透明度 在小生的其他文章中有所介绍)
<color name="module_btn_bg_color">#33b5e5e5</color>
六、dimen 命名
dimen 资源以小写单词+下划线方式命名,写入 module_dimens.xml 文件中,采用以下规则:
模块名_描述信息,如:
<dimen name="module_horizontal_line_height">1dp</dimen>
七、style 命名
style 资源采用小写单词+下划线方式命名,写入 module_styles.xml 文件中,采用以下规则:
父style 名称.当前 style 名称,如:
<style name="SeekBarLayout.SeekBar">
<item name="android:layout_width">match_parent</item> // 宽
<item name="android:layout_height">wrap_content</item> // 高
<item name="android:layout_centerVertical">true</item> // 将控件置于垂直方向的中心位置
<item name="android:maxHeight">@dimen/px_4</item> // 设置最大的高
<item name="android:minHeight">@dimen/px_2</item> // 设置最小的高
<item name="android:progressDrawable">@drawable/bg_seekbar_thumb</item>
// 设置进度中的背景颜色和进度颜色
<item name="android:thumb">@null</item> // 设置拖动条的拖动按钮的样式图片
</style>
八、string 命名
string 资源文件或者文本用到字符需要全部写入 module_strings.xml 文件中,
字符串以小写单词+下划线的方式命名,采用以下规则:
模块名_逻辑名称,如:
moudule_login_tips
module_homepage_notice_desc
九、Id 资源命名
Id 资源原则上以驼峰法命名,View 组件的资源 id 需要以 View 的缩写作为
控件 | 缩写 |
LinearLayout | ll |
RelativeLayout | rl |
ConstraintLayout | cl |
ListView | lv |
ScollView | sv |
TextView | tv |
Button | btn |
ImageView | iv |
CheckBox | cb |
RadioButton | rb |
EditText | et |
其它控件的缩写推荐使用小写字母并用下划线进行分割,例如:
ProgressBar 对应的缩写为 progress_bar
DatePicker 对应的缩写为 date_picker
十、图片放入文件夹
大分辨率图片(单维度超过 1000)大分辨率图片建议统一放在 xxhdpi 目录下管理,否则将导致占用内存成倍数增加。
说明:
为了支持多种屏幕尺寸和密度,Android 为多种屏幕提供不同的资源目录进行适配。
为不同屏幕密度提供不同的位图可绘制对象,可用于密度特定资源的配置限定符(在下面详述)
包括 ldpi(低)、mdpi(中)、 hdpi(高)、xhdpi(超高)、xxhdpi (超超高)和 xxxhdpi(超超超高)。
例如,高密度屏幕的位图应使用 drawable-hdpi/。
根据当前的设备屏幕尺寸和密度,将会寻找最匹配的资源,如果将高分辨率图片放入低密度目录,
将会造成低端机加载过大图片资源,又可能造成 OOM,同时也是资源浪费,没有必要在低端机使用大图。
正例:
将 144*144 的应用图标 PNG 文件放在 drawable-xxhdpi 目录
反例:
将 144*144 的应用图标 PNG 文件放在 drawable-mhdpi 目录