1. 程式人生 > >Android開發規範:資原始檔命名規範

Android開發規範:資原始檔命名規範

文章目錄

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>