Android res文件夾下資源定義及使用

1  顏色 #RGB #ARGB #RRGGBB #AARRGGBB

 

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

 

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

 

定義<color name=cname>value</color>

 

使用 Resourse.getValues.getColorR.標籤名."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

 

定義<String  name=sname>value</String>

 

使用 Resourse.getValues.getStringR.標籤名.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系統也支持jpggif9png等格式,可以使用Movie來播放gif格式的圖片

 

路徑res/drawable

 

可以直接存放圖片也可以是xml等配置文件(一般用於自定義組件)

 

使用 getDrawableR.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”>

   <item name=”android:textSize”>18sp</item>

   <item name=”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-list xmlns: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文件夾是存放不進行編譯加工的原生文件,即該文件夾裏面的文件不會像xmljava文件被預編譯,可以存放一些圖片,htmljs, css等文件。在後面會介紹如何讀取assets文件夾的資源!

     res文件夾裏面的多個文件夾的各自介紹(來自網上的Android開發指南中文版內容)

目錄Directory

 

資源類型Resource Types

 

res/anim/

 

XML文件,它們被編譯進逐幀動畫(frame by frame animation)或補間動畫(tweened animation)對象

 

res/drawable/

 

.png.9.png.jpg文件,它們被編譯進以下的Drawable資源子類型中:

 

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

 

位圖文件

 

9-patches(可變尺寸的位圖)

 

爲了獲取資源類型,使用mContext.getResources().getDrawable(R.drawable.p_w_picpathId)

 

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

 

 

res/layout/

 

被編譯爲屏幕布局(或屏幕的一部分)XML文件。參見佈局聲明(Declaring Layout)

 

res/values/

 

可以被編譯成很多種類型的資源的XML文件。

 

注意:

不像其他的res/文件夾,它可以保存任意數量的文件,這些文件保存了要創建資源的描述,而不是資源本身。XML元素類型控制這些資源應該放在R類的什麼地方。

 

 

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

 

 

array.xml 定義數組

 

 

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

 

 

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

 

 

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

 

 

styles.xml 定義樣式(style)對象。

 

res/xml/

 

任意的XML文件,在運行時可以通過調用Resources.getXML()讀取。

 

res/raw/

 

res/assets/

 

直接複製到設備中的任意文件。它們無需編譯,添加到你的應用程序編譯產生的壓縮文件中。要使用這些資源,可以調用Resources.openRawResource(),參數是資源的ID,即R.raw.somefilenameassets下也可以放置任意文件,使用Activity.this.getAssets().open("519.txt");打開

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