1. 程式人生 > >Android各種資源詳解

Android各種資源詳解


1、字串資源

Android允許一個或多個xml檔案中定義一個或多個字串。這些xml檔案位於/res/values目錄下。檔名池可以任意指定,但常見的是類似strings.xml這樣的。
如:
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3.     <stringname="hello">Hello World, HandlerDemo!</string>
  4.     <stringname="app_name">HandlerDemo</string>
  5. </resources>
檔案中的name屬性最終將成為R.java中的id。

2、佈局資源
在Android中,螢幕的檢視通常以資源的形式從xml檔案中載入,這些xml檔案稱為佈局資源。佈局資源是Android UI程式設計中使用的一種主要資源。
如:
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7. <TextView
  8.     android:id="@+id/textView"
  9.     android:layout_width="fill_parent"
  10.     android:layout_height="wrap_content"
  11.     android:text="@string/hello"
  12.     />
  13. </LinearLayout>
Android中需要為每個活動(Activity)定義一個獨立的佈局檔案,更準確的講每個佈局需要一個專門的檔案。如果繪製兩個螢幕,可能需要兩個佈局檔案,如:/res/layout/screen1_layout.xml和/res/layout/screen2_layout.xml。

在Activity中可以通過R.id.textView找到佈局檔案中的textview。id屬性的值表示,將使用一個名為textView的常量來唯一標識次檢視,以與該活動的其他檢視相區別。@+id/textView的加號(+)表示,textView可能還不存在,如果確實是這樣,則建立一個新id並將其命名為textView。

3、資源引用語法
@[package:]type/name
type對應R.java中一種可用資源型別名稱空間,包括:
R.drawable
R.id
R.layout
R.string
R.attr
R.plural
R.array
XML資源引用語法中相應型別為:
Drawable
id
layout
string
attr
plurals
string-array

關於plural,我們知道不同的語言對數量的定義有不同的語法規則。例如,在英語中,1個指的是一種特殊情況。其他時候我們說n個。這種單數和複數的情況非常的普通。但其他語言卻有明顯的區別。Android中設定了0,1,2,"很少",“許多”和“其他”做為數量表述。
對於給定的語言和數量,決定使用那種情況是非常的困難和複雜的。Android提供了getQuantityString()來幫助我們決定選擇適當的資源。
語法:
  1. <?
    xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3.     <plurals
  4.         name="plural_name">
  5.         <item
  6.             quantity=["zero" | "one" | "two" | "few" | "many" | "other"]  
  7.             >text_string</item>
  8.     </plurals>
  9. </resources>
檔案位置:res/values/plural.xml
如何引用:R.plurals.plural_name
4、已編譯和未編譯的Android資源
Android主要通過兩種檔案型別支援資源:XML檔案和原始檔案(包括影象和音訊,視訊);其中xml檔案,有的會編譯為二進位制檔案,另一種按原樣複製到裝置。可以將XML檔案放到/res/xml/子目錄中,以將它們編譯為二進位制格式,可以使用Android提供的XML閱讀器讀取xml節點。但如果將檔案(包括xml)放到了/res/raw/目錄下,他們將不會編譯為二進位制,必須使用明確的基於流式傳輸的API來讀取這些檔案。
下面是/res資料夾中一些重要的子目錄和他們儲存的資源型別。
anim:已編譯的動畫檔案
drawable:點陣圖
layout:UI/檢視檔案
values:陣列、顏色、尺寸、字串和樣式
xml:已編譯的任意xml檔案
raw:未編譯的原始檔案
5、使用字串陣列
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3.     <stringname="hello">Hello World, String_Resource!</string>
  4.     <stringname="app_name">String_Resource</string>
  5.     <string-arrayname="test_array">
  6.         <item></item>
  7.         <item></item>
  8.         <item></item>
  9.     </string-array>
  10. </resources>

擁有此字串陣列資源定義後,可以利用Java程式碼獲取次陣列,程式碼如下:

  1. publicclass String_Resource extends Activity {  
  2.     privatestaticfinal String TAG = "string array";  
  3.     @Override
  4.     publicvoid onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.         //得到字串資源陣列
  8.         Resources r = getResources();  
  9.         String[] strings = r.getStringArray(R.array.test_array);  
  10.         //通過日誌列印陣列內容
  11.         for (String str : strings){  
  12.             Log.i(TAG, str);  
  13.         }  
  14.     }  
  15. }  
6、資源plurals表示數量的各種方式,比如:一個教室有多少學生。考慮下面的例子:
there is 1 student;
there are 2 students;
there are 50 students;
顯然對於2,50句子格式是一樣的,對於1不同,Android支援將這種變體表示為plurals資源。
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3.     <stringname="hello">Hello World, Resource_Plurals!</string>
  4.     <stringname="app_name">Resource_Plurals</string>
  5.     <pluralsname="student">
  6.         <itemquantity="one">There is 1 student</item>
  7.         <itemquantity="other">There are %d  students</item>
  8.     </plurals>
  9. </resources>
在Java程式碼中獲取定義的plurals資源
  1. publicclass Resource_Plurals extends Activity {  
  2.     /** Called when the activity is first created. */
  3.     @Override
  4.     publicvoid

    相關推薦

    Android各種資源

    1、字串資源 Android允許一個或多個xml檔案中定義一個或多個字串。這些xml檔案位於/res/values目錄下。檔名池可以任意指定,但常見的是類似strings.xml這樣的。 如: <?xmlversion="1.0"encoding="utf-8"?>

    Android各種資源 android開發教程

    在Android層次結構中,資源扮演著非常重要的角色。在Android中,資源是繫結到可執行程式的檔案或值。這些檔案和值繫結到可執行程式的方式很友好,無需重新編譯和重新部署應用程式就能更改他們。熟悉的資源包括:字串,顏色和點陣圖等。下面分別介紹Android中資源的使用。

    Android 獲取本地儲存路徑的各種方法

    Android 中獲取本地儲存路徑,有四個方法, getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()。 接下來介紹下每個方法的特點以及路徑地址 getCacheDir(

    aNDROID之MEDIapLaYER

    iap music media 詳解 list oid aid 5% layer %E8%BD%AC%E8%BD%BD%E4%B8%80%E4%B8%AA%E5%9B%BE%E7%89%87%E5%A4%84%E7%90%86%E5%B7%A5%E5%85%B7%E7%B1

    Oracle 數據庫啟動與關閉 各種方式整理

    歸檔模式 tro 需求 acl 提交 管理操作 edi 存在 datafile 概述 只有具備sysdba和sysoper系統特權的用戶才能啟動和關閉數據庫。 在啟動數據庫之前應該啟動監聽程序,否則就不能利用命令方式來管理數據庫,包括啟動和關閉數據庫。 雖然數據庫正常運行,

    Android RxJava操作符系列: 變換操作符

    urn 原因 轉換 需要 生產 依賴 reat 入門 所有 Rxjava,由於其基於事件流的鏈式調用、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎。Github截圖 如果還不了解 RxJava,請看文章:Android:這是一篇 清晰 &

    VB ListView控件各種操作

    auto .com 設置 查看 右鍵 src 行為 ade 在線 VB ListView控件各種操作詳解 [vb] view plaincopy Private Sub Form_Load() ‘ListView1.SmallIcon

    android:exported 屬性

    itl fas 默認 之前 綁定 四大 nbsp ring ins http://blog.csdn.net/watermusicyes/article/details/46460347 昨天在用360掃描應用漏洞時,掃描結果,出來一個android:exported屬性,

    Android SDK Manager

    eba 調試 測試工具 使用說明 服務 能力 bar 部分 以及 Android基礎知識——Android SDK Manager詳解 做Android開發時,免不了使用Android SDK Manager,安裝需要的sdk版本、buildTool

    Django model select的各種用法

    datetime 我們 查詢 存在 search matching cep between http 《Django model update的各種用法介紹》文章介紹了Django model的各種update操作,這篇文章就是她的姊妹篇,詳細介紹Django model

    IOS和Android系統區別

    清理 span back 一個 style 沙盒 安裝 最大值 完全 IOS系統(非開源,不可擴展) iphone沙盒機制解釋:應用程序位於文件系統的嚴格限制部分,程序不能直接訪問其他應用程序。 1、iOS的編程語言Objective-C 2、IOS采用的是沙盒運行

    Android Volley框架

    注:文章出自http://blog.csdn.net/guolin_blog/article/details/17482095,有興趣可以先去閱讀。 Volley簡介 對於Android系統網路通訊,我們知道目前用的最普遍的就是HttpClient和HttpURLConnection,但是H

    Android快取機制之硬碟快取DiskLruCache

    簡介 防止多圖OOM的核心解決思路就是使用LruCache技術。但LruCache只是管理了記憶體中圖片的儲存與釋放,如果圖片從記憶體中被移除的話,那麼又需要從網路上重新載入一次圖片,這顯然非常耗時。對此,Google又提供了一套硬碟快取的解決方案:DiskLruCache(非Google官方編

    Android pm 命令

    一、pm命令介紹與包名資訊查詢 1.pm命令介紹 pm工具為包管理(package manager)的簡稱 可以使用pm工具來執行應用的安裝和查詢應用的資訊、系統許可權、控制應用 pm工具是Android開發與測試過程中必不可少的工具,shell命令格式如下: pm <

    Android開發:Handler的記憶體洩露

    原文:https://blog.csdn.net/carson_ho/article/details/52693211 前言 記憶體洩露在Android開發中非常常見 記憶體洩露的定義:本該被回收的物件不能被回收而停留在堆記憶體中

    單鏈表,頭插法,尾插法各種函式

    一:LinkList.cpp檔案 #include <stdio.h> #include <malloc.h> //malloc函式 用了<stdlib.h>中的 <malloc.h>標頭檔案 typedef int ElemT

    Android 四大元件中 android:exported 屬性

    當我們在用360等檢測軟體掃描應用漏洞時,掃描結果可能歸類為安全漏洞,涉及一個Android:exported屬性,這個屬性究竟是用來幹嘛的呢,詳情見下圖: 因此,查了官方API,學習了一下這個屬性! android:exported 是Android中的四大元件 Ac

    Android permission許可權

            許可權是一種安全機制。Android許可權主要用於限制應用程式內部某些具有限制性特性的功能使用以及應用程式之間的元件訪問。在Android開發中,基本上都會遇到聯網的需求,我們知道都需要加上聯網所需要的許可權: <uses-perm

    Android Paging library(二)

    重要API及原始碼分析 文章目錄 1.重要API介紹 1.1 DataSource 1.2 PageList 1.3 PagedListAdapter 2.原始碼解析 1.重要API介紹 Pagin

    Android Paging library(一)

    官方文件翻譯 文章目錄 1.概覽 1.1 庫架構 1.2 支援不同的資料架構 1.2.1 網路獲取或者資料庫 1.2.2 網路和資料庫同時獲取 1.2.3 處理網路錯誤 1.2.4 更新