【お知らせ】みんプロ式Flutter講座は2026年4月末をもって新規販売を終了いたします。詳しくはこちら →

[Android]resフォルダに入れた複数の画像をxmlファイルで配列管理する方法(TypedArrayの使い方)

このページには広告が含まれる場合があります。

 

resフォルダに格納した複数の画像を、ソースコード内ではなくxmlファイル内で配列管理して、それをソースコードで使えるようにする方法です。

 

1.任意のxmlファイルに配列管理したい画像の整数配列(integer-array)を設定する

動画の解説内では、「strings.xml」に設定していますが、<resources>タグで括ってさえいれば、どのxmlファイルに記述しても問題ないそうです(引用参照)。

<resources>
    <integer-array name="background_list">
        <item>@drawable/back001</item>
        <item>@drawable/back002</item>
        <item>@drawable/back003</item>
       
       
        <item>@drawable/back098</item>
        <item>@drawable/back099</item>
        <item>@drawable/back100</item>
    </integer-array>

</resources>

 A typed array is a simple resource that is referenced using the value provided in the name attribute (not the name of the XML file). As such, you can combine typed array resources with other simple resources in the one XML file, under one <resources> element.

 

2.1で設定した配列をソースコードで使う

たとえば、こんな感じで

val backGroundArray = resources.obtainTypedArray(R.array.background_list) :①
val backGroundRes = backGroundArray.getResourceId(0, -1) :② 第一引数が配列のインデックス
constraintLayout.setBackgroundResource(backGroundRes)   :③
backGroundArray.recycle() ← 最後はTypedArray#recycle()を使わないといけないらしい :④
  1. Resources#obrainTypedArray()で、xmlで設定した配列を取得
  2. Resources#getResourcesId(配列のインデックス, デフォルト値)で、配列内で使いたい画像のリソースIDを取得
  3. 画面の背景に②で取得したリソースIDの画像を表示
  4. TypedArray#recycle()で、①で取得した配列のリサイクル

(詳しくは下の動画で解説していますので、よろしければご覧ください)

こんな記事も読まれています

GAMBO(願望) 願望実現・目標達成の
17秒 / 68秒ワーク
GAMBO(願望) 引き寄せ難民だったぼくの挫折経験から生まれた誰でもできる願望実現サポートアプリ。かの有名な17秒/68秒ワークを独自の視覚化メソッドで簡単実践。
App Store / Google Play 詳しく見る →
Meiso(瞑想) 鐘音と自然音で
5分からのマインドフルネス
Meiso(瞑想) 初心者でも“迷わず続けられる”ことにこだわった、完全無料の瞑想アプリ。画面のガイドに従うだけで呼吸のリズムが整い、最短5分から瞑想を実践できます。
App Store / Google Play 詳しく見る →
小学生からの英検®単語 A ふりがな・音声付き
英検単語1日5分トレーニング
小学生からの英検®単語 ありそうでなかった!ふりがな付き英検®単語トレーニングアプリ!1日たった5分!スキマ時間を活用して、英検®頻出単語を効率的に習得。お子様の一人学習にも安心設計。
App Store / Google Play 詳しく見る →
オボエルンジャー レトロゲームで
nバック脳トレ
オボエルンジャー 科学的脳力開発法「Nバック課題」をファミコン風8bitレトロゲームにアレンジした新感覚脳トレアプリ。記憶力・感情コントロール力・集中力の向上に。
App Store / Google Play 詳しく見る →
ゴイコイコイ 超高速フラッシュカードで
語彙習得
ゴイコイコイ 日常語1400語を視覚的に学べる、高速読み上げフラッシュカード式の語彙トレーニングアプリ。知育教室で行われるフラッシュカード学習を、家庭で“手軽に・安価に・正確に”再現。
App Store / Google Play 詳しく見る →

TOP