一、图片资源
背景:
1.无状态的背景:
- 一般是某个界面的主题背景,或某个区域的背景,不随其状态而改变
如:bg_main 主界面背景 ,bg_login登录界面背景等等
2.有状态背景:
- bg_描述_状态1[_状态2],这种图片,面积相对比较少,主要用于控件上的不同状态,而且在layout配置文件当中,一般不会直接引用,而是通过定义"selector"文件的方式引用,实现动态变换的效果,而"selector"的文件名字,可以直接取"bg_描述_selector.xml";
- 如:bg_chatto_normal,bg_chatto_pressed 聊天右边边气泡区域背景
- 另外一种写法是:chatto_bg_normal,chatto_bg_pressed(微信的写法)
- 这两种写法各有优缺点,即总分和分总的区别,对于小范围的这种图片,使用后者更为方便,这样做可以减少<bg_描述> 这类图片的数量,便于查找和区分
图标:
- ic_描述,这种图片,一般用于单个图标或是起标识作用,如九宫格上的图标,listview上的小图标等;
按扭:
- btn_描述_状态1[_状态2],主要用于表示按扭的不同状态,一般也是通过selector方式进行引用,有3态和6态之分,通常情况切图给两张:_normal(普通状态),_pressed(按下状态);
选择框:
- chx_描述_状态1[_状态2],选择框,一般有2态和4态;
△状态
- 一般用下面的单词作为结尾表示:
_normal或_nor(普通状态),
_pressed(按下状态),
_focused(焦点状态),
_checked(选中状态,选择按钮的选中等),
_selected(选中状态, 列表选中某项等),
_disabled(禁用状态,一般只是按钮不可点,选中框不可选中)
△描述
- 这个根据个人对界面层次的理解不同,命名也会不同,一般先描述所归属的大模块,再把具体用途用简洁的单词描述出来,尽量使人望文生义
△PS:
对于.9图,不管是Android程序,还是UI设计都不会陌生,但有些细节有必要提出来说一下:
.9(Nine-patch)图是Android系统中非常重要的一个图形组件。为了最优化的图形显示,官方建议提供所有屏幕密度的.9图(mdpi、hdpi、xhdpi等)。如果您为了偷懒只提供某一种屏幕密度的图(比如 大部分应用都只提供了hdpi的图),则需要准守如下两个原则:
- 可拉伸区域距离边框要有(2-4像素的)间距
- 可拉伸区域的长度最少值为2-4像素
二、自定义布局资源
1.Layout:
- 如果当前的xml文件,是用作activty的contentview的,就用“layout_描述.xml”,
- 如果是局部布局,可以写成这样子:“chatto_layout_voice.xml”,其好处同bg的第二种写法有相似之处。
- 如果其他子布局包含在其他大布局之中,那么子布局可以命名:其他子布局包含在其他大布局之中:“include_模块.xml”
2.Dialog:
- 同上,用"dialog_描述.xml" ;
3.列表项:
- 如果是表示listview中的每一项的布局文件,可以用“list_item_描述.xml”同理,gridview的每一项用"grid_item_描述.xml";
三、控件命名(id)
xml中id的命名,建议直接根据意义命名,不必使用以上复杂的定位,因为findViewById只在某指定layout中find,这点很重要,多个布局里面相同名称无所谓。
我个人习惯使用:android:id="@id/tv_name"android:id="@id/lv_name"、android:id="@id/tv_title",然后在class里的命名和id名字保持一致,,但是改为驼峰式命名。
四、字符串资源
<!-- 选择 -->
<string name="confirm">确认</string>
<string name="affirm">确定</string>
<string name="cancel">取消</string>
<string name="back">返回</string>
<string name="agree">同意</string>
<string name="reject">拒绝</string>
<string name="ignore">忽略</string>
<string name="open">开启</string>
<string name="close">关闭</string>
<string name="on">开</string>
<string name="off">关</string>
<string name="yes">是</string>
<string name="no">否</string>
查看更多
先写这么多吧,代码的规范性有时间也会总结一下,规范性可能要慢慢去提升,逐渐摸索出更优的方案。
参考:http://blog.chengyunfeng.com/?p=507