2013-08-01 44 views
10

私は小さなゲームを開発しようとしています。ImageViewからリソースIDを取得

私はImageViewsに50枚の画像(4枚のランダムな頻度)を持つViewFlipperを持っています。それから私はViewFlipperに表示されることができる同じ4枚の写真で4つのボタンを持っています。

右の画像が表示されたら、右ボタンをクリックします。 (画像1が表示されるときにボタン1を押すなど)

表示されたImageView IDを取得する方法がわかりません。

flipper.getCurrentView().getId() 

は、Idとして「-1」を与える。しかし、私は

"R.drawable.pic1" のIDを持つようにしたい、これまで私のコード:

私のローダー-方法:

protected void loadPicturesIntoFlipper() { 

    Random generator = new Random(); 
    pictures = new ArrayList(); 

    for(int i = 0; i < 50;i++){ 

     int number = generator.nextInt(4) + 1; 

     if(number == 1){ 
      pic = R.drawable.pic1; 
     } 
     if(number == 2){ 
      pic = R.drawable.pic2; 
     } 
     if(number == 3){ 
      pic = R.drawable.pic3; 
     } 
     if(number == 4){ 
      pic = R.drawable.pic4; 
     } 

     pictures.add(pic); 
    } 


    for(int i=0;i<pictures.size();i++) 
    { 

     setFlipperImage((Integer) pictures.get(i)); 
    } 



} 

マイ挿入-方法:

private void setFlipperImage(int res) { 

    image = new ImageView(getApplicationContext()); 
    image.setBackgroundResource(res); 
    flipper.addView(image); 
} 

私のチェック方法:

protected void check(int number, int id) { 
    int code = 0;; 

    if(number == 1){ 
     code = R.drawable.button_tip_finder; 
    } 
    if(number == 2){ 
     code = R.drawable.button_about_us; 
    } 
    if(number == 3){ 
     code = R.drawable.button_power_calculator; 
    } 
    if(number == 4){ 
     code = R.drawable.button_powerpedia; 
    } 



    if(code == id){ 
     test.setText(""+id); 
    } 
    else{ 
     test.setText(""+id); 
    } 


} 

私はそれが好き呼び出す:

private void setFlipperImage(int res) { 
    image = new ImageView(getApplicationContext()); 
    image.setBackgroundResource(res); 
    image.setTag(res); //<------ 
    flipper.addView(image); 
} 

、その後:

button1.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
       check(1,flipper.getCurrentView().getId()); 
       flipper.showNext(); 

       } 
      }); 
+1

'R.drawable.pic1'は描画可能なリソースIDで、' .getId() 'はビューのIDを返します。 –

+0

イメージビュー内にイメージのIDを表示しますか? – Blackbelt

+0

私のイメージビュー内にイメージのIDを表示したい。 – Billabong

答えて

12

はこのようにそれを実行してください

button1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       check(1,(Integer)flipper.getCurrentView().getTag());//<---- 
       flipper.showNext(); 
      } 
     }); 

はところで、例えば、あなたのコードのすべてでelseをしてください使用

if(number == 1){ 
     pic = R.drawable.pic1; 
} else if(number == 2){ 
     pic = R.drawable.pic2; 
} else if(number == 3){ 
     pic = R.drawable.pic3; 
} 
1

この回答は役に立ちましたか?

int icon = getResources().getIdentifier([YOUR IMAGE NAME], "drawable", 
      getPackageName()); 
関連する問題