Android res檔案夾下資源定義及使用

來源:互聯網
上載者:User

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

 

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

 

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

 

定義<color name=”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

 

定義<String  name=”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 名字可以隨意

 

使用和String、color類似

 

<?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、動畫

 

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

 

先說一下第一種

 

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檔案夾是存放不進行編譯加工的原生檔案,即該檔案夾裡面的檔案不會像xml,java檔案被先行編譯,可以存放一些圖片,html,js, 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.imageId)

 

注意:放在這裡的映像資源可能會被aapt工具自動地進行無損壓縮最佳化。比如,一個真彩色但並不需要256色的PNG可能會被轉換為一個帶調色盤的8位PNG。這使得同等品質的圖片佔用更少的資源。所以我們得意識到這些放在該目錄下的二進位映像在產生時可能會發生變化。如果你想讀取一個映像位流並轉換成一個位元影像(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.somefilename。assets下也可以放置任意檔案,使用Activity.this.getAssets().open("519.txt");開啟

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.