Android开发规范:资源文件命名规范

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ddnosh/article/details/84193665

layout

全部小写,采用下划线命名法,使用名词或名词词组。
所有Activity或Fragment的contentView必须与其类名对应。

  1. 命名规则:
    将所有字母都转为小写,类型+功能
  2. 举例:
    比如MainActivity.java –> activity_main.xml
    以下为几种常用的组件类型命名:
    activity_类名,为Activity的命名格式
    fragment_类名,为Fragment的命名格式
    dialog_描述,为Dialog的命名格式
    item_list_描述,为ListView的item命名格式
    item_grid_描述,为GridView的item命名格式
    header_list_描述,为ListView的HeaderView命名格式
    footer_list_描述,为ListView的FooterView命名格式
    有些资源文件有明确定义的范围,比如activity_main内包含的header布局文件,为activity_main_head.xml的命名格式
    要求通过该id能直接理解该组件所实现的功能。

layout中的id

  1. 命名规则
    命名规则:控件缩写_模块_逻辑
  2. 举例
    如:et_login_password,表示这是一个登录模块的密码输入框。
<!-- 这是标题栏的标题 -->
<TextView
    android:id="@+id/tv_header_title"
    />

<!-- 这是搜索按钮 -->
<Button
    android:id="@+id/btn_main_search"
/>

很多项目为了简洁,往往layout的id定义的不那么复杂,比如上面的et_login_password可能就会写成password。
这样有一个问题是,如果项目中存在多个相同的命名,那么查找起来会有些不方便。比如:
在这里插入图片描述
有同名的id:main_content。这样在代码中点击后,系统则会弹出选择框让我们选择跳转到哪一个layout下面的id。这样就增加了开发时间,尤其是对代码不是特别熟悉的情况下。

anim

全部小写,采用下划线命名法。

  1. 命名规则:
    通用:动画类型_动画方向
    模块专用:模块名_动画类型_动画方向
  2. 举例:
    fade_out.xml淡出、slide_in_from_top从上滑动进入
    fade_in,淡入
    fade_out,淡出
    push_down_in,从下方推入
    push_down_out,从下方推出
    slide_in_from_top,从头部滑动进入
    zoom_enter,变形进入
    shrink_to_middle,中间缩小
    welcome_zoom_in,欢迎界面放大

drawable

全部小写,采用下划线命名法,加前缀区分

  1. 命名规则:
    通用:用途_逻辑名
    通用:用途_颜色
    模块专用:用途_模块名_逻辑名
    模块专用:用途_模块名_颜色
    说明:用途也指控件类型(具体见附录1:控件缩写表)
    可加后缀 _small 表示小图, _big 表示大图,逻辑名称可由多个单词加下划线组成.
  2. 举例:
    名称 说明
    btn_main_home.png 按键用途_模块名_逻辑名称
    divider_maket_white.png 分割线用途_模块名_颜色
    ic_edit.png 图标用途_逻辑名称
    bg_main.png 背景用途_逻辑名称
    btn_red.png 红色按键用途_颜色
    btn_red_big.png 红色大按键用途_颜色
    ic_head_small.png 小头像用途_逻辑名称
    bg_input.png 输入框背景用途_逻辑名称
    divider_white.png 白色分割线用途_颜色
    bg_main_head 主模块头部背景图片用途_模块名_逻辑名称
    def_search_cell 默认搜索界面单元图片用途_模块名_逻辑名称
    ic_more_help 更多帮助图标用途_逻辑名称
    divider_list_line 列表分割线用途_逻辑名称
    sel_search_ok 搜索界面确认选择器用途_模块名_逻辑名称
    shape_music_ring 音乐界面环形形状用途_模块名_逻辑名称
    如果有多种形态,如按钮选择器:sel_btn_xx.xml
    sel_btn_xx 按钮图片使用btn_整体效果(selector)
    btn_xx_normal 按钮图片使用btn_正常情况效果
    btn_xx_pressed 按钮图片使用btn_点击时候效果
    btn_xx_focused state_focused聚焦效果
    btn_xx_disabled state_enabled (false)不可用效果
    btn_xx_checked state_checked选中效果
    btn_xx_selected state_selected选中效果
    btn_xx_hovered state_hovered悬停效果
    btn_xx_checkable state_checkable可选效果
    btn_xx_activated state_activated激活的
    btn_xx_windowfocused state_window_focused

values中的id

  1. strings
    1. 命名规则:
      通用:逻辑名
      模块专用:模块名_逻辑名
    2. 举例:
      以下为几种常用的命名:
      main_menu_about 主模块菜单按键文字
      friend_title 好友模块标题栏
      friend_dialog_del 好友模块删除提示
      login_check_email 登录模块验证
      dialog_title 弹出框标题
      button_ok 确认键
      loading 加载文字
  2. colors
    一般颜色的命名只是用来映射颜色ARGB的名称。
    1. 命名规则:
      通用:颜色值名
      专用:模块名或主题名_颜色值名
    2. 例子:
<resources>
	      <!-- grayscale -->
	      <color name="white"     >#FFFFFF</color>
	      <color name="gray_light">#DBDBDB</color>
	      <color name="gray"      >#939393</color>
	      <color name="gray_dark" >#5F5F5F</color>
	      <color name="black"     >#323232</color>
	      <!-- basic colors -->
	      <color name="green">#27D34D</color>
	      <color name="blue">#2A91BD</color>
	      <color name="orange">#FF9D2F</color>
	      <color name="red">#FF432F</color>
	  </resources>  
  1. dimens
    1. 命名规则:
      类型_值
    2. 例子:
<resources>
    <!-- font sizes -->
    <dimen name="font_22">22sp</dimen>
    <dimen name="font_18">18sp</dimen>
    <dimen name="font_15">15sp</dimen>
    <dimen name="font_12">12sp</dimen>

    <!-- typical spacing between two views -->
    <dimen name="spacing_40">40dp</dimen>
    <dimen name="spacing_24">24dp</dimen>
    <dimen name="spacing_14">14dp</dimen>
    <dimen name="spacing_10">10dp</dimen>
    <dimen name="spacing_4">4dp</dimen>

    <!-- typical sizes of views -->
    <dimen name="button_height_60">60dp</dimen>
    <dimen name="button_height_40">40dp</dimen>
    <dimen name="button_height_32">32dp</dimen>
</resources>

  1. styles
    采用大驼峰命名法则。
    1. 命名规则:
      通用:逻辑名
      模块专用:模块名 + . + 逻辑名
    2. 举例:
<style name="ContentText">
    <item name="android:textSize">@dimen/font_normal</item>
    <item name="android:textColor">@color/basic_black</item>
</style>
<style name="Feed.Category" parent="Session.Tag">
        <item name="android:textAllCaps">true</item>
        <item name="android:textColor">@color/feed_category</item>
        <item name="android:minHeight">32dp</item>
    </style>

猜你喜欢

转载自blog.csdn.net/ddnosh/article/details/84193665