drawableのsetLevelとはなんぞや?

2011年1月18日

setLevel() で drawable に level を設定すると、level list 内を上から走査していって、

設定値より大きい or 等しい android:maxLevel が定義されたリソースを読み込む

level Listとは

res/drawable に置くXMLファイルで

そのファイルの中身は

<?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>

という書式。

/res/drawable/test.xml

というファイルを作成し、中に

<?xml version="1.0" encoding="utf-8"?>
<level-list
  xmlns:android="http://schemas.android.com/apk/res/android" >
<item
  android:drawable="@drawable/test1"
  android:maxLevel="1"
  android:minLevel="1" />
<item
  android:drawable="@drawable/test2"
  android:maxLevel="2"
  android:minLevel="2" />
</level-list>

という定義をした場合、setLevel(1)とすれば、test1を参照し、setLevel(2)とすれば、test2を参照する事が出来る

アンケート