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バージョンで利用できます.
以上です.