2016-12-09 5 views
-5
int imgs[] = 
    { 
     R.drawable.a, 
     R.drawable.b, 
     R.drawable.c, 
     R.drawable.d, 
     R.drawable.e, 
     // R.drawable.abc, 
    }; 

私はこのループを使ってそのことをしたいと思います。ループを動的に使用して画像を配列に設定する

class DrawableClass{ 
    int id; 
    Drawable drawable; 
} 

各オブジェクトに増分IDでこのオブジェクトを作成する:

+0

質問は非常に不明です –

+0

'のヘルプ 'ループ本当に? –

+0

申し訳ありませんが、私は手動で –

答えて

0

一つの解決策は、このようなモデルクラスを作成しています。 idをループ解析します。

+0

ではなく、動的に描画可能なイメージを割り当てたいと思います。どのように各オブジェクトの画像を設定するには –

+0

の写真を撮るのですか?上記のクラスのgetterメソッドとsetterメソッドを使用するか、Drawable as paramterを受け入れるこのクラスのコンストラクタを作成する必要があります。 – Vinodh

+0

こちらも手作りです... 組み込み関数 –

4

私はあなたを正しく理解し、あなたが探しているものは、そのarrayの動的作成です。

たとえば、ドロワーブルの名前がR.drawable.image0,R.drawable.image1などとなっている場合は、次のコードを使用できます。

int imgs[] = new int[N]; 
  
for (int i = 0; i < N; i ++) { 
    imgs[i] = this.getResources().getIdentifier("image" + i, "drawable", this.getPackageName()); 
} 

EDIT:

まあ、コメント欄では、いくつかの混乱があります。

ドロワブル名を(a、b、c)のままにしたい場合は、それらも定義する必要があります。例

String[] names = {"a", "b", "c"}; 
int imgs[] = new int[names.length]; 

for (int i = 0; i < names.length; i ++) { 
    imgs[i] = this.getResources().getIdentifier(names[i], "drawable", this.getPackageName()); 
} 

しかし、あなたが見るようにあなたはまだ手動ですべての名前を入力する必要があるため、あなたは、この場合には、ループを使用して多くを達成していないため。

+0

はありますか –

+0

このパッケージ名は何ですか? –

+0

パッケージ名はアプリケーションのパッケージです(例:com.example.app)。 "this.getPackageName()"は、 "this"がContext(またはActivityのような子孫)であることを前提としています。 –

関連する問題