在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ Android 資源組織和訪問
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實(shí)例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android 資源組織和訪問

在許多Android項(xiàng)目中,有很多東西要用來建立一個(gè)良好的Android應(yīng)用程序。除了編碼應(yīng)用各種資源,如:位圖,顏色,布局定義,用戶界面字符串,動畫,靜態(tài)內(nèi)容。在res/目錄下,這些資源一直保持在各自子目錄。

這一小節(jié)將學(xué)習(xí)如何組織應(yīng)用程序資源,指定替代資源,并在應(yīng)用程序訪問它們。

組織資源

將每種類型的資源在一個(gè)特定項(xiàng)目的 res/目錄的子目錄。例如,這里有一個(gè)簡單的項(xiàng)目文件層次:

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml  

 res/目錄中包含不同的子目錄的不同資源。在這里有一個(gè)圖像資源,兩個(gè)布局資源和一個(gè)字符串資源文件。下表給出了詳細(xì)的項(xiàng)目在 res/目錄里面支持的資源。

目錄 資源類型
anim/ 定義屬性的動畫XML文件。它們被保存在res/anim/文件夾,并從R.anim類訪問
color/ 定義的顏色狀態(tài)列表的XML文件。它們被保存在res/color/ ,并從R.color類訪問
drawable/ 像被編譯成位圖。.png, .jpg, .gif 或XML文件,狀態(tài)列表,圖形,動畫可繪制的圖像文件。它們被保存在res/drawable/,并可從R.drawable類訪問
layout/ 定義用戶界面布局的XML文件。它們被保存在res/layout/,并可從R.layout類訪問
menu/ 定義應(yīng)用程序菜單,如選項(xiàng)菜單,上下文菜單或子菜單的XML文件。它們被保存在res/menu/,并可從R.menu類訪問
raw/ 任意文件保存在其原始形式。您需要callResources.openRawResource()與所述資源ID,即R.raw.filename來打開這樣的原始文件
values/ 包含簡單的值,如字符串,整數(shù)和顏色的XML文件。例如,這里有一些文件名約定資源,可以創(chuàng)建在該目錄中:
  • arrays.xml資源數(shù)組,并可從R.array類訪問

  • integers.xml資源整數(shù),并可從R.integerclass訪問

  • bools.xml資源布爾型,并可從R.bool類訪問

  • colors.xml為顏色值,并可從R.color類訪問

  • dimens.xml為維度值,并可從R.dimen類訪問

  • strings.xml為字符串值,并且可從R.string類訪問

  • styles.xml為樣式并可從R.style類訪問

xml/ 可以通過調(diào)用Resources.getXML()來讀取在運(yùn)行時(shí)任意的XML文件??梢栽谶@里保存各種配置文件,這些文件可在運(yùn)行時(shí)使用

替代資源

應(yīng)用程序提供替代資源以支持特定的設(shè)備配置。例如,包括替代繪制資源(ie.images),針對不同的語言不同的屏幕分辨率并替代字符串資源。在運(yùn)行時(shí)Android 檢測當(dāng)前設(shè)備的配置,并為應(yīng)用程序加載適當(dāng)?shù)馁Y源。

要指定一組資源的配置具體的替代,請遵循以下步驟:

  • 創(chuàng)建新目錄在res/ 目錄下,命名形式如 <resources_name>-<config_qualifier>。這里resources_name 是在上表中提到的資源,如layout,drawable 等限定符將指定一個(gè)單獨(dú)的配置,要使用這些資源??梢圆榭垂俜轿臋n的完整列表,限定符為不同類型的資源。

  • 在這個(gè)新的目錄中保存相應(yīng)的替代資源。資源文件必須被命名為默認(rèn)的資源文件,如下面的例子所示的完全一樣,但這些文件具有特定內(nèi)容的替代。例如,雖然圖像的文件名是相同的,但對高分辨率屏幕,其分辨率會很高。

下面是一個(gè)例子,它指定一個(gè)默認(rèn)的屏幕和高分辨率屏幕的替代圖像的圖像。

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml 

下面是另一個(gè)例子,指定一種默認(rèn)語言為阿拉伯語并指定替代布局。

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        layout-ar/
            main.xml
        values/  
            strings.xml 

訪問資源

在應(yīng)用程序開發(fā)中,需要訪問定義的資源,無論是在代碼還是在布局XML文件。下面的部分介紹了如何訪問資源在這兩個(gè)場景:

訪問資源代碼

當(dāng)Android應(yīng)用程序被編譯時(shí),會產(chǎn)生一個(gè)R類,其中包含在res/ 目錄中的所有可用資源的資源ID。使用R類直接訪問該子目錄和資源名稱或資源ID。 

示例:

要訪問 res/drawable/myimage.png,并設(shè)置一個(gè)ImageView 可使用下面的代碼:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

下面第一行代碼,使用R.id.myimageview  id 為myimageview定義布局文件。第二行代碼使用 R.drawable.myimage 得到的圖像名稱myimage ,在 /res子目錄下。

示例:

考慮在下一個(gè)例子 res/values/strings.xml 有以下定義:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string  name="hello">Hello, World!</string>
</resources>

現(xiàn)在,可以設(shè)置一個(gè)TextView對象msg 文字使用資源ID如下:

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

示例:

考慮一個(gè)布局res/layout/activity_main.xml 如以下的定義:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >
<TextView android:id="@+id/text"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Hello, I am a Button" />
</LinearLayout>

這個(gè)應(yīng)用程序代碼的一個(gè)活動將加載此布局,在onCreate()方法如下:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}

XML中訪問資源

考慮下面的XML資源res/values/strings.xml文件,包括顏色資源和一個(gè)字符串資源:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

現(xiàn)在,可以利用這些資源,在下面的布局文件中設(shè)置文本顏色和文本字符串如下:

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" />

現(xiàn)在,如果將再次通過前面的章節(jié)了解,例如:Hello World!應(yīng)用,將有助于更好的理解本小節(jié)介紹的概念。了解在前面的小節(jié)中是如何利用各種資源的基本操作。