1. 程式人生 > >Android res資料夾下資源定義及使用!

Android res資料夾下資源定義及使用!

1、顏色 #RGB #ARGB #RRGGBB#AARRGGBB

顏色資源應該位於<resources></resources>標籤下

路徑res/values/colors.xml 名字可以隨意

定義<colorname=”cname”>value</color>

使用 Resourse.getValues.getColor或R.標籤名."name"屬性,如:R.color.cname

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color name

="white">#FFFFFF</color>

<color name="black">#000000</color>

</resources>

2、字串

字串資源應該位於<resources></resources>標籤下

路徑res/values/strings.xml

定義<Stringname=”sname”>value</String>

使用 Resourse.getValues.getString或R.標籤名.name屬性,如:R.String.sname。

<?xml version

="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World,ResrouseTestActivity!</string>

<string name="app_name">ResrouseTest</string>

</resources>

3、圖片

圖片資源一般使用png格式,Android系統也支援jpg、gif、9png等格式,可以使用Movie來播放gif格式的圖片

路徑res/drawable

可以直接存放圖片也可以是

xml等配置檔案(一般用於自定義元件)

使用 getDrawable或R.drawable.圖片名。

4、圖片的顏色

位於res/values/my_drawable.xml名字隨意

<?xml version="1.0" encoding="utf-8"?>

<resources>

<drawable name="solid_red">#FF0000</drawable>

</resources>

定義用於填充一個元件的顏色值,即給view設定背景色。用法和drawable下的圖片一樣,其實沒多少意義,使用顏色定義就ok了,目前我是這樣認為的,可能有更好的優點,不過我沒發現罷了,嘿嘿,continue...

5、單位資源

單位資源應該位於<resources></resources>標籤下

路徑res/values/dimen.xml 名字可以隨意

使用和Stringcolor類似

<?xml version="1.0" encoding="utf-8"?>

<resources>

<dimen name="dimen_name">2px</dimen>

<dimen name="dimen_px">5px</dimen>

<dimen name="dimen_pt">3pt</dimen>

<dimen name="dimen_dp">3dp</dimen>

</resources>

6、Nine-patch(可以拉伸的小圖片)

支援圖片的拉伸

貌似就是所謂的png圖片檔案資源,圖片在應用view的背景時,如果被設為background則會隨view的大小變化做相應的拉伸和收縮,像ImageView這類設定src圖片則不隨view變化,按其自身大小顯示部分或全部!

7、選單

選單即可以從程式碼中實現也可以在資原始檔中配置,這裡就是要描述一下第二種
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/previous"
android:title="@string/previous"
android:enabled="false"android:icon="@android:drawable/ic_media_previous"/>
<item
android:id="@+id/play_pause"
android:title="@string/play"
android:icon="@android:drawable/ic_media_play"/>
<item
android:id="@+id/next"
android:title="@string/next"
android:icon="@android:drawable/ic_menu_next"/>
</menu>

8、Layout佈局

這個就是你經常看到的與使用者互動的介面的xml檔案,就是各個view的排列和巢狀,沒什麼好說的啦

9、風格和主題、

風格主要是指view的顯示風格 res/values/filename.xml

<?xml version=”1.0″encoding=”utf-8″?>
<resources>
  <style name=”SpecialText”parent=”@style/Text”>
  <itemname=”android:textSize”>18sp</item>
  <itemname=”android:textColor”>#008</item>
</style>
</resources>

主題主要針對Activity,可以在Android Manifest中定義的<application><activity>元素將主題新增到整個程式或者某個 Activity,但是主題是不能應用在某一個單獨的View.風格可以自己定義也可以使用程式自帶的或是繼承已有的風格。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowFrame">@drawable/screen_frame</item>
<item name="windowBackground">@drawable/screen_background_white</item>
<item name="panelForegroundColor">#FF000000</item>
<item name="panelBackgroundColor">#FFFFFFFF</item>
<item name="panelTextColor">?panelForegroundColor</item>
<item name="panelTextSize">14</item>
<item name="menuItemTextColor">?panelTextColor</item>
<item name="menuItemTextSize">?panelTextSize</item>
</style>
</resources>

10、動畫

動畫資源分為兩種,一是實現圖片的translatescalerotatealpha四種變化。還可以設定動畫的播放特性;另一種是幀動畫,逐幀播放設定的資源

先說一下第一種

Res/anim/filename.xml//此處anim資料夾是自己建的,名字不可變!
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0"
android:toYDelta="180" android:duration="2000" />
<scale android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0"
android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%"
android:duration="2000" />
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
<rotate ....各個屬性></rotate>
<Interpolator >可以使用其子類和屬性定義動畫的執行方式,先快後慢,先慢後快等</Interpolator>
</set>

具體引數的用法,大家可以自己查資料

下面是第二種資源

<animation-listxmlns:android=”http://schemas.android.com/apk/res/android”
android:oneshot=”true”>
<item android:drawable=”@drawable/rocket_thrust1″android:duration=”200″ />
<item android:drawable=”@drawable/rocket_thrust2″android:duration=”200″ />
<item android:drawable=”@drawable/rocket_thrust3″android:duration=”200″ />
</animation-list>

1.相關資料夾介紹    在Android專案資料夾裡面,主要的資原始檔是放在res資料夾裡面的。assets資料夾是存放不進行編譯加工的原生檔案,即該資料夾裡面的檔案不會像xml,java檔案被預編譯,可以存放一些圖片,html,js,css等檔案。在後面會介紹如何讀取assets資料夾的資源!
    res資料夾裡面的多個資料夾的各自介紹(來自網上的Android開發指南中文版內容):

目錄Directory

資源型別ResourceTypes

res/drawable/

.png.9.png.jpg檔案,它們被編譯進以下的Drawable資源子型別中:

要獲得這種型別的一個資源,可以使用Resource.getDrawable(id)

點陣圖檔案

為了獲取資源型別,使用mContext.getResources().getDrawable(R.drawable.imageId)

注意:放在這裡的影象資源可能會被aapt工具自動地進行無失真壓縮優化。比如,一個真彩色但並不需要256色的PNG可能會被轉換為一個帶調色盤的8PNG。這使得同等質量的圖片佔用更少的資源。所以我們得意識到這些放在該目錄下的二進位制影象在生成時可能會發生變化。如果你想讀取一個影象位流並轉換成一個位圖(bitmap),請把影象檔案放在res/raw/目錄下這樣可以避免被自動優化。

res/layout/

被編譯為屏幕布局(或螢幕的一部分)的XML檔案。參見佈局宣告(DeclaringLayout)

res/values/

可以被編譯成很多種型別的資源的XML檔案。

注意:
不像其他的res/資料夾,它可以儲存任意數量的檔案,這些檔案儲存了要建立資源的描述,而不是資源本身。XML元素型別控制這些資源應該放在R類的什麼地方。


儘管這個資料夾裡的檔案可以任意命名,不過下面使一些比較典型的檔案(檔案命名的慣例是將元素型別包含在該名稱之中):

array.xml 定義陣列

colors.xml 定義colordrawable顏色的字串值(colorstring values)。使用Resource.getDrawable()Resources.getColor()分別獲得這些資源。

dimens.xml定義尺寸值(dimensionvalue)。使用Resources.getDimension()獲得這些資源。

strings.xml定義字串(string)值。使用Resources.getString()或者Resources.getText()獲取這些資源。getText()會保留在UI字串上應用的豐富的文字樣式。

styles.xml 定義樣式(style)物件。

res/xml/

res/raw/

res/assets/

直接複製到裝置中的任意檔案。它們無需編譯,新增到你的應用程式編譯產生的壓縮檔案中。要使用這些資源,可以呼叫Resources.openRawResource(),引數是資源的ID,即R.raw.somefilename。assets下也可以放置任意檔案,使用Activity.this.getAssets().open("519.txt");開啟