Android應(yīng)用資源的學(xué)習(xí)

最近發(fā)現(xiàn)自己在開發(fā)的過程中還有很多東西都不懂,所以決定從今晚開始重新學(xué)習(xí)android基礎(chǔ),今晚學(xué)習(xí)android應(yīng)用資源并記錄自己的學(xué)習(xí)筆記,方便自己以后查看

學(xué)習(xí)android這段時間,覺得android應(yīng)用程序可以分為以下三大類
  • ** 界面布局文件: ** xml文件,文件中每個標(biāo)簽都對應(yīng)于相應(yīng)的view標(biāo)簽
  • ** Java源文件:** 應(yīng)用中的Activity 、Service 、BroadcastService 、ContentProvider四大組件都是采用java代碼實現(xiàn)的
  • 資源文件: 主要以各種xml文件為主,還有包括 *.png、*. jpg、*.gif圖片資源和一些音頻文件、視頻文件資源
1、應(yīng)用資源概述
  • android應(yīng)用資源可以分為兩大類
    • 無法通過R資源清單類訪問的原生資源,保存在assets目錄下
    • 可以通過R資源清單類訪問的資源,保存在res目錄下
  • android不同資源在res目錄下的存儲方式
目錄 存放的資源
/res/animator/ 存放定義屬性動畫的XML文件
/res/anim/ 存放定義補(bǔ)間動畫的XML文件
/res/color/ 存放定義不同狀態(tài)下顏色列表的XML文件
/res/drawable/ 存放各種位圖文件(如*.png *.9.png *.jpg *.gif)等。除此之外,也可能是編譯成如下各種Drawable對象的XML文件:BimapDrawable對象、NinePatchDrawable對象、StateListDrawable對象、ShapeDrawable對象、AnimationDrawable對象、Drawable的其他各種子類的對象
/res/layout/ 存放各種用戶界面的布局文件
/res/menu/ 存放為應(yīng)用程序定義各種菜單的資源,包括選項菜單、子菜單、上下文菜單資源
/res/raw/ 存放任意類型的原生資源(比如資源文件、視頻文件等),在java代碼中可通過調(diào)用Resource對象的openRawResource(int id)方法來獲取該資源的二進(jìn)制輸入流。實際上,如果應(yīng)用程序需要使用原生資源,也可把這些原生資源保存到/assets/目錄下,然后在應(yīng)用程序中使用AssetManager來訪問這些資源
/res/values/ 存放各種簡單值的XML文件。這些簡單值包括字符串值、整數(shù)值、顏色值、數(shù)組等 ,這些資源文件等根元素都是</resources.../>,為該<resources.../>元素添加不同的子元素則代表不同的資源,例如:** 1.string/integer/bool子元素:代表添加一個字符串值、整數(shù)值或boolean值; 2.color子元素:代表添加一個顏色值;3.array子元素或string-array、int-array子元素:代表添加一個數(shù)組;4.style子元素:代表添加一個樣式;5.dimen:代表添加一個尺寸** 為了方便以后的編寫,使用不同的文件來存放不同類型的值:** arrays.xml定義數(shù)組資源;colors.xml定義顏色值資源;dimens.xml定義尺寸值資源;strings.xml定義字符串資源;styles.xml:定義樣式資源**
/res/xml/ 存放任意的原生XML文件。這些XML文件可以在java代碼中使用Resources.getXML()方法進(jìn)行訪問
2.使用資源
  • ** 在java代碼中使用資源清單項 **
    由于android sdk會在編譯應(yīng)用時在R類中為/res/目錄下所有資源創(chuàng)建索引,所以在java代碼中訪問資源主要通過R類完成,如以下代碼片段:
//從drawable資源中加載圖片,并且設(shè)為該窗口的背景
getWindow.setBackgorundDrawableResource(R.drawable.back);
//從string資源中獲取字符串資源,并且設(shè)為窗口的標(biāo)題
getWindow.setText(getResources().getText(R.string.main_title));
//獲取指定的TextView組件,并設(shè)置該組件顯示string資源中的字符串資源
TextView text=(TextView)findViewById(R.id.msg);
text.setText(R.string.hello_messager);
  • ** 在java代碼中訪問實際資源 **
    借助android提供的Resources類來完成訪問實際資源,Resources類主要提供了如下兩種方法:

getXxx(int id): 根據(jù)資源清單id來獲取實際資源
getAssets(): 獲取訪問/assets/目錄下資源的AssetManager對象
Resources實例由Context.getResources()方法來獲取。

代碼如下

//直接調(diào)用Activity的getResources()方法來獲取Resources實例對象
Resources resources=getResources();
//獲取字符串資源
String mainTitle=resources.getText(R.string.main_title);
//獲取Drawable資源
Drawable logo=resources.getDrawable(R.drawable.logo);
//獲取數(shù)組資源
int[] arr=resources.getIntArray(R.array.books);
3.在XML文件中使用資源
  • 在一個文件定義來兩種資源,代碼如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
      <string name="hello">hello world!</string>
      <color name="red">#ff00></color>
</resources>
  • 在XML資源文件是使用資源,代碼如下
<TextView android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:textColor="@color/red"
      android:text="@string/hello"/>

** 時間不早了,寫著寫著就到凌晨一點(diǎn)了,覺得自己今晚效率挺低的,一晚上才學(xué)了一點(diǎn)東西,明晚繼續(xù)編寫android應(yīng)用資源的相關(guān)知識。深夜里感覺全世界都安靜了,去刷牙背完單詞該睡覺了,努力什么都會有的,加油!**

夜深
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容