XML 値ファイルを使用して、ドローアブル リソースの ID をR.drawable.*
配列内の形式で保存し、アクティビティで配列を取得したいと考えています。
これを達成する方法のアイデアはありますか?
XML 値ファイルを使用して、ドローアブル リソースの ID をR.drawable.*
配列内の形式で保存し、アクティビティで配列を取得したいと考えています。
これを達成する方法のアイデアはありますか?
次のようなフォルダー内のファイルで型付き配列を使用します。arrays.xml
/res/values
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer-array name="random_imgs">
<item>@drawable/car_01</item>
<item>@drawable/balloon_random_02</item>
<item>@drawable/dog_03</item>
</integer-array>
</resources>
次に、アクティビティで次のようにアクセスします。
TypedArray imgs = getResources().obtainTypedArray(R.array.random_imgs);
// get resource ID by index, use 0 as default to set null resource
imgs.getResourceId(i, 0)
// or set you ImageView's resource to the id
mImgView1.setImageResource(imgs.getResourceId(i, 0));
// recycle the array
imgs.recycle();
これを使用して、ドローアブルなどの他のリソースの配列を作成できます。配列は同種である必要はないので、リソース タイプが混在する配列を作成できますが、データ タイプが配列内のどこに何があるのかを認識しておく必要があることに注意してください。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="icons">
<item>@drawable/home</item>
<item>@drawable/settings</item>
<item>@drawable/logout</item>
</array>
<array name="colors">
<item>#FFFF0000</item>
<item>#FF00FF00</item>
<item>#FF0000FF</item>
</array>
</resources>
そして、このようなアクティビティでリソースを取得します
Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);
TypedArray colors = res.obtainTypedArray(R.array.colors);
int color = colors.getColor(0,0);
楽しみ!!!!!