級別列表
級別列表管理著一組可選擇的繪制資源,被管理的每個資源都會給分配一個最大的數字值。調用setLevel()方法給裝載在級別列表中的有android:maxLevel屬性的繪制資源設置級別值。android:maxLevel的值要大於或等於傳遞給setLevel()方法的值。
文件位置(FILE LOCATION):
res/drawable/filename.xml
文件名被用作資源ID。
被編譯資源的數據類型(COMPILED RESOURCE DATATYPE):
資源指向一個LevelListDrawable對象。
資源引用(RESOURCE REFERENCE)
在Java代碼中:R.drawable.filename
在XML中:@[package:]drawable/filename
語法(SYNTAX):
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/drawable_resource"
android:maxLevel="integer"
android:minLevel="integer"/>
</level-list>
元素(ELEMENTS):
<level-list>
它必須是根元素。包含一個或多個<item>元素。
屬性(ATTRIBUTES):
xmlns:android
字符串值,必須的。它定義瞭XML的命名空間,必須是:http://schemas.android.com/apk/res/android
<item>
定義瞭某個級別中使用的一個可繪制資源。
屬性(ATTRIBUTES):
android:drawable
繪制資源,必須的,它指向瞭一個要插入的可繪制資源。
android:maxLevel
整數值,指定這個項目所允許的最大級別。
android:minLevel
整數值,指定這個項目所允許的最小級別。
例子(EXAMPLE):
<?xml version="1.0" encoding="utf-8"?>
<level-listxmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/status_off"
android:maxLevel="0"/>
<item
android:drawable="@drawable/status_on"
android:maxLevel="1"/>
</level-list>
一旦級別類被應用給瞭一個View對象,就能夠調用setLevel()或setImageLevel()方法來改變級別。
過渡期繪制資源
TransitionDrawable是一個繪制資源對象,它能夠在兩個繪制資源之間漸入漸出。
每個可繪制資源都用一個<item>元素來代表,它被放在一個單一的<transition>元素內部。在<transition>元素內隻能包含一個或兩個<item>元素。向前過渡,要調用startTransition()方法,向後過渡,要調用reverseTransition()方法。
文件位置(FILE LOCATION):
res/drawable/filename.xml
文件名被用作資源ID。
被編譯資源的數據類型(COMPILED RESOURCE DATATYPE):
資源指向一個TransitionDrawable對象。
資源引用(RESOURCE REFERENCE):
在Java代碼中:R.drawable.filename
在XML中:@[package:]drawable/filename
語法(SYNTAX):
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension"/>
</transition>
元素(ELEMENTS):
<transition>
必須的,它必須是根元素,它要包含一個或多個<item>元素。
屬性(ATTRIBUTES):
xmlns:android
字符串值,必須的。它定義瞭XML的命名空間,必須是:http://schemas.android.com/apk/res/android
<item>
它定義瞭一個繪制過渡效果的繪制資源,必須是<tansition>元素的子元素,它還可以接收<bitmap>子元素。
屬性(ATTRIBUTES):
android:drawable
繪制資源,必須的。它應用一個可繪制資源。
android:id
資源ID,針對這個繪制資源的唯一的資源ID。要使用“@+id/name”格式,給這個項目創建一個新的資源ID,“+”指示應該給這個資源創建一個新的ID。通過這個ID,可以使用View.findViewById()或Activity.findViewById()方法來獲取或編輯這個可繪制資源。
android:top
整數值。上邊緣的偏移像素。
android:right
整數值。右邊緣的偏移像素。
android:bottom
整數值。下邊緣的偏移像素。
android:left
整數值。左邊緣的偏移像素。
例子(EXAMPLE):
XML文件被保存在res/drawable/transition.xml:
<?xml version="1.0" encoding="utf-8"?>
<transitionxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:drawable="@drawable/on"/>
<itemandroid:drawable="@drawable/off"/>
</transition>
佈局XML把這個繪制資源應用給一個View對象:
<ImageButton
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/transition"/>
下面的代碼在第一項到第二項之間要執行500毫秒的過渡:
ImageButton button =(ImageButton) findViewById(R.id.button);
TransitionDrawable drawable =(TransitionDrawable) button.getDrawable();
drawable.startTransition(500);
摘自 FireOfStar的專欄