Android 资源文件命名规范

来源:互联网 发布:seo工程师 编辑:程序博客网 时间:2024/05/21 17:52

前言

在我们开发Android的时候,肯定会用到资源文件,color,dimen,string等等,当我们项目小的时候,我们使用资源文件并没有关注使用的规范.导致项目大了以后或者ui经过几次的改版之后,资源文件中的资源名称命名很是混乱.下面我就看看其他的文章和自身的经验,来总结一下资源文件中的命名规范

以下的说法都是博主个人觉得比较好的观点,如果各位有什么不同的意见,欢迎讨论

命名的唯一的一个目的就是为了后期便于维护

命名的总体的一个方式就是根据模块来命名,能达到看到名字就能知道这个资源的作用就可以啦

命名的唯一的一个目的就是为了后期便于维护

命名的总体的一个方式就是根据模块来命名,能达到看到名字就能知道这个资源的作用就可以啦

而我们的所有资源大概分为以下两类:

1.layout drawable mipmap

2.strings colors dimens

第一种资源是以单个文件作为区分的,都是在一个目录下的,顺序是根据名称而定的

第二种资源是定义在一个文件内的,内部的顺序是可以自己人为协调的

1.layout drawable mipmap
使用模块的名称来开头,这样子可以让一个模块下的文件都自动被IDE规整到一块了,便于查找也便于管理,不用到处寻找了

如果一些是多个界面通用的资源,采用统一的common_前缀开头来命名,可让通用的资源都规整到一块

2.strings colors dimens
这类资源是文件内部声明的,所以我们可以在内部根据模块进行编写,一个模块的统一规整到一块
通用的资源可以单独规整

特别注意:在项目中我们经常可以见到的命名比如

<color name="red">#FF0000</color>

这种命名是描述资源本身的是严禁在代码中直接使用的,因为此类资源没有任何一点的模块划分,也和业务没有一丝的关系

命名总结

layout

非共有类型:{模块描述}_{布局类型}

共有功能类型:{common}_{布局类型}

main_act
表示主界面Activity的布局

main_home_frag
表示主界面的子页面HomeFragment的布局

myorder_act
表示我的订单的界面

myorder_list_item
表示我的订单的列表的item

common_order_list_item
表示多个界面用到的订单列表的item

common_taxi_order_list_item
表示多个界面用到的出租车订单列表的item

drawable 和 mipmap

非共有类型:{模块描述}_{视图类型}_{业务描述}_{类型}_{后缀}

共有功能类型:{common}_{视图类型}_{业务描述}_{类型}_{后缀}

类型:_ic,_bg(貌似就这两种了)

后缀:_normal,_pressed,_selected,_selector,_disable……

后缀默认的就是_normal,可以被省略的

main_iv_goback_ic_normal
表示主界面的返回图标的imageview的图标

main_iv_goback_bg_normal
表示主界面的返回图标的imageview的背景

main_iv_goback_bg_selector
表示主界面的返回图标的imageview的背景选择器

common_iv_goback_ic_selector 表示通用的返回图标的图标选择器

strings 和 colors 和 dimens

非共有类型:{模块描述}_{视图类型}_{业务描述}_{后缀}

共有功能类型:{业务功能}_{视图类型}_{业务描述}_{后缀}

后缀:_normal,_pressed,_selected,_selector,_disable……

<string name="main_home_et_password_hint">请输入密码</string>

表示主页的home子页面中的密码输入框的提示文本

<string name="main_home_et_password_text">123456</string>

表示主页的home子页面中的密码输入框的默认显示密码为123456,

订单列表中的确认收货按钮的文本<string name="order_list_item_btn_confirmreceipt">确认收货</string>订单列表中的确认收货按钮被按下时候的文本<string name="order_list_item_btn_confirmreceipt_pressed">确认收货</string>

order 表示视图功能描述,list_item_btn 是视图类型,confirmreceipt 是业务描述

<resources>    <!--============不可直接使用的静态资源==========-->    <string name="ok">确认</string>    <string name="completed">已完成</string>    <string name="exit">退出</string>    <string name="find">发现</string>    <!--===========共有部分 =========-->    <string name="app_name">Soar</string>    <!--订单列表中的确认订单按钮文本-->    <string name="order_list_item_btn_confirmreceipt">确认收货</string>    <!--弹框中的确认按钮的文本-->    <string name="dialg_btn_confirm">好的</string>    <!--===========主界面 =========-->    <string name="main_home_btn_confirm">@string/ok</string>    <!--首页和发现页面的标题栏文本-->    <string name="main_home_title">首页</string>    <string name="main_find_title">@string/find</string>    <!--===========主界面 end===========--></resources>
<?xml version="1.0" encoding="utf-8"?><resources>    <!--============不可直接使用的静态资源==========-->    <!--两个静态资源,不能直接使用的-->    <color name="red">#FF0000</color>    <color name="blue">#0000FF</color>    <!--============共有部分==========-->    <!--所有界面的标题栏的背景颜色-->    <color name="titlebar">@color/red</color>    <color name="titlebar_bg">@color/red</color>    <!--所有界面的分割线颜色-->    <color name="item_div_bg">#888888</color>    <!--所有订单的确认按钮的的背景色-->    <color name="order_btn_confirm">@color/red</color>    <color name="order_btn_confirm_bg">@color/red</color>    <!--============主界面模块==========-->    <!--主页的home子页面的标题栏背景颜色-->    <color name="main_home_titlebar">@color/red</color>    <color name="main_home_titlebar_bg">@color/red</color>    <!--主页的发现子页面的确认按钮的背景颜色-->    <color name="main_find_btn_confirm">@color/red</color>    <!--主页的发现子页面的确认按钮的文本颜色-->    <color name="main_find_btn_confirm_text">@color/blue</color>    <!--主页的发现子页面的确认按钮被按下的时候的背景颜色-->    <color name="main_find_btn_confirm_bg_pressed">@color/red</color>    <!--主页的发现子页面的确认按钮被按下的时候的文本颜色-->    <color name="main_find_btn_confirm_text_pressed">@color/blue</color></resources>