Android中訪問資源的幾種方式總結



1 在代碼中
       1  通過資源ID來訪問

       2  獲得單個資源    getResources() 來獲得資源實例


語法:[<package_name>.]R.<resource_type>.<resource_name>
  R     R類
  resource_type  R的子類 資源的類型
  resource_name  資源的名字 或者是android:name 的屬性值(在xml文件中)

  1 在Resources中,可以使用方法獲取資源
  2  通過Context.getResources()獲取資源實例


2 在XML中
使用一個特定的XML語法:
@[<package_name>:]<resource_type>/<resource_name>

@string/hello


資源類型:以下資源都在資源res/目錄中提供
=========================================================================================
 Animation Resources       Tween animation  補間動畫  存儲目錄 res/anim   訪問方法R.anim
      Frame animation   幀間動畫 存儲目錄 res/drawable  訪問方法 R.drawable

=========================================================================================
 Color State List Resource   定義了基於View狀態改變的顏色資源
     保存目錄 res/color/  訪問方法 R.color

=========================================================================================
 Drawable Resources 定義各種圖形 ,用bitmap位圖 或 XML
     保存在res/drawable 訪問R.drawable

=========================================================================================
 Layout Resource  爲應用UI定義的佈局
     保存在res/layout    訪問方法:R.layout
=========================================================================================
 Menu Resource  定義了應用的菜單內容
     保存在res/menu       訪問方法:R.menu
=========================================================================================
 String Resources 定義了字符串string,字符串數組array,plurals複數(多元)【格式化的字符串和樣式style】
    訪問方法:R.string   R.array  R.plurals
=========================================================================================
 Style Resource  定義UI元素的外表和格式
    存儲在:res/values/         訪問方法:R.style
=========================================================================================
 More Resource Types 定義 booleans, integers, dimensions, colors, and other arrays.
  保存在res/values/  但訪問都用獨立的R子類  R.bool, R.integer, R.dimen


3 引用樣式屬性:

一個樣式屬性資源允許你在當前應用的主題中引用屬性的值引用一個屬性值允許你去定製UI元素的外表,通過樣式化它們匹配當前主題的標準差異,代替硬編碼的值。引用一個樣式屬性,潛在的是說,在當前主題中,使用該屬性集定義的樣式


引用一個樣式屬性,語法上與常用資源的引用幾乎沒有差別,唯一不同的是用?來代替@符號,並且資源類型是可選的。語法:
 ?[<package_name>:][<resource_type>/]<resource_name>

例如,下面匹配主要的文本顏色:
<EditText id="text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="?android:textColorSecondary"
    android:text="@string/hello_world" />

4 引用平臺資源
 android.R.layout.simple_list_item_1 要使用android.R包




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章