2016-11-30 47 views
0

アンドロイドでimageViewの配列のresource_idを取得するにはどうすればよいですか?私は描画可能リソースリソースIDを取得ImageView(ImageViewsの配列)

int resId = context.getResources().getIdentifier("[imagename]" + indexNumber, "drawable", context.getPackageName()); 

ために私を取得する方法を知っている。しかし、今、私はレイアウトフォルダに存在ImageViewの(activity_main.xml)のIDを取得する

理由は、私が持っているということですindexnumer以外の類似の名前を持つ10種類のイメージビュー。

私の完全なコード

ImageView[] imageView = new ImageView[10]; 
    AnimationDrawable[] frameAnimation = new AnimationDrawable[10]; 
    for (int i = 0; i < 10; i++) { 

     int id = ??? 
     imageView[i] = (ImageView) findViewById(id); 
     imageView[i].setBackgroundResource(R.drawable.gold_coin_animation); 

     // Get the background, which has been compiled to an AnimationDrawable object. 
     frameAnimation[i] = (AnimationDrawable) imageView[i].getBackground(); 

     frameAnimation[i].start(); 
    } 

imageviesの名前は

gold_coin_id1 
gold_coin_id2 
gold_coin_id3 
... 
gold_coin_id110 

ですだから私は、接頭辞(gold_coin)によるビューのリソースIDを取得したいindexnumberと連結

+0

idをimageview lik imageViewArray [i] .setId(i)に設定できます。 – Vadivel

+0

ImageView [] imageViewArray =新しいImageView [10]; for(int i = 0; i <10; i ++){ imageViewArray [i] = new ImageView(this);imageViewArray [i] .setId(i); } – Vadivel

+0

あなたはint [] resArray = new int [] {R.drawable.gold_coin_id1、R.drawable.gold_coin_id2、R.drawable.gold_coin_id3、R.drawable.gold_coin_id4}を作成し、このresArrayを使ってsetBackgroundを作成することができます –

答えて

1

これは動作するはずです

int id = getResources().getIdentifier("gold_coin_id"+i, "id", getPackageName()); 
imageView[i] = (ImageView) findViewById(id); 
+0

stupid me - 私は将来的に署名をもっと学ぶことを学ぶべきです。ありがとう:-) – java

関連する問題