layer-list
や selector
など, リソースがまた別のリソースを参照する場合があります.
<selector ...>
<item android:drawable="@drawable/image01" />
<item android:drawable="@drawable/image02" />
image01
や image02
がベクタードロワブルの場合は, 新たに image01.xml
, image02.xml
と2つのドロワブルリソースを用意する必要があります.
selector
やlayer-list
の定義ファイル- image01.xml
- image02.xml
image01
や image02
が他リソースでも使われている共通化されたリソースであれば良いのですが, 他では使われず, ここでしか参照されない場合は1つのリソースファイルとしてまとめて定義できた方が管理が楽です.
そうした場合は aapt:attr
タグが使えます.
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt">
<item>
<aapt:attr name="android:drawable">
<vector ... >
<path ... />
</vector>
</aapt:attr>
</item>
</selector>
<aapt:attr>
タグで指定したリソースは, aaptによってリソースファイルとして抽出・生成され, name
属性名の値は, 親タグの同属性に指定のリソースを設定する動作となります.
この機能は全てのAndroidバージョンで利用できます.
以上です.