2016-03-24 3 views
1

私はアンドロイドプログラミングには新しく、アニメーションカウンターを持つアプリケーションを作っています。私はカウントボタンの数を増やすとカウントが増え、カウントに応じてImageView画像ソースを変更したいときはCount ++で変更するカウンターイメージをコーディングする方法

私は9999の最大カウントを持つので、私は動的にそれをしたいときにこれをしています。この

TextView textViewHeader; 
static String value; 
static int count; 
static ImageButton imageButtonCountTasbeeh; 
ImageView imageViewLsb,imageViewLsb1, imageViewLsb2, imageViewLsb3; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_tasbeeh_counter); 
    imageButtonCountTasbeeh = (ImageButton)findViewById(R.id.imageButtonCountTasbeeh); 
    textViewHeader = (TextView)findViewById(R.id.editTextTasbeehName); 
    imageButtonCountTasbeeh.setImageResource(R.drawable.imagebuttontasbeenpageselector); 
    imageViewLsb = (ImageView)findViewById(R.id.imageViewLsb); 
    imageViewLsb1 = (ImageView)findViewById(R.id.imageViewLsb1); 
    imageViewLsb2 = (ImageView)findViewById(R.id.imageViewLsb2); 
    imageViewLsb3 = (ImageView)findViewById(R.id.imageViewLsb3); 

    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     value = extras.getString("tasbeehName"); 
    } 
    textViewHeader.setText(value); 

    imageButtonCountTasbeeh.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Toast.makeText(getBaseContext(), "Hello you Just Clicked me", Toast.LENGTH_LONG).show(); 
      count++; 
      if(count<10) { 
       int resID = getResources().getIdentifier("n" + count, "drawable", getPackageName()); 
       imageViewLsb.setImageResource(resID); 
      }else if(count<20 && count>=10) 
      { 
       int count1 = count-10; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n1); 

      }else if(count<30 && count>=20) 
      { 
       int count1 = count-20; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n2); 
      }else if(count<40 && count>=30) 
      { 
       int count1 = count-30; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n3); 
      }else if(count<50 && count>=40) 
      { 
       int count1 = count-40; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n4); 
      }else if(count<60 && count>=50) 
      { 
       int count1 = count-50; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n5); 
      }else if(count<70 && count>=60) 
      { 
       int count1 = count-60; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n6); 
      }else if(count<80 && count>=70) 
      { 
       int count1 = count-70; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n7); 
      }else if(count<90 && count>=80) 
      { 
       int count1 = count-80; 
       int resID = getResources().getIdentifier("n" + count1, "drawable", getPackageName()); 

       imageViewLsb.setImageResource(resID); 
       imageViewLsb1.setImageResource(R.drawable.n8); 
      } 



     } 
    }); 




} 

}

+0

[Android - Open Resource from @Drawable String](http://stackoverflow.com/questions/2349652/android-open-resource-from-drawable-string) –

答えて

1

はこれを試してみてください:

imageButtonCountTasbeeh.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //Toast.makeText(getBaseContext(), "Hello you Just Clicked me", Toast.LENGTH_LONG).show(); 
     count++;    
     if (count > 999) 
       imageViewLsb3.setImageResource(getResIdDrawableByNumber(count/1000)); 

      if (count > 99) { 
       int n100 = (count % 1000)/100; 
       imageViewLsb2.setImageResource(getResIdDrawableByNumber(n100)); 
      } 

      if (count > 9) { 
       int number10 = (count % 100)/10; 
       imageViewLsb1.setImageResource(getResIdDrawableByNumber(number10)); 
      } 

      imageViewLsb.setImageResource(getResIdDrawableByNumber(count % 10)); 
    } 
}); 

数の値によって対応する画像リソースIDを取得するために使用この方法:

public int getResIdDrawableByNumber(int count){  
    return = getResources().getIdentifier("n" + count, "drawable", getPackageName());  
} 

・ホープ、このことができます!

+0

ご協力いただきありがとうございます! は、これは私が4つの画像ビューを持つ1つのイメージビューのために働いているに応じて imageViewLsb imageViewLsb1 imageViewLsb2 imageViewLsb3 –

+0

助けることがうれしいです!あなたが私たちの助けを価値あるものにしてくれれば幸いです。) –

+0

これは1つのImageViewに役立ちますが、私は4桁のImageViewを持っています imageViewLsb imageViewLsb1 imageViewLsb2 imageViewLsb3 –

0

ための条件は、あなたは、これは、このようなresource idを取得することにより、成し遂げることができた場合:

int drawableResourceId = this.getResources().getIdentifier("nameOfDrawable", "drawable", this.getPackageName()); 

n1n2、..、n9999で、nameOfDrawableを置き換える必要があります。これ

@Override 
public void onClick(View v) { 
    count++; 
    int drawableResourceId = this.getResources().getIdentifier("n"+count, "drawable", this.getPackageName());   
    imageViewLsb.setImageResource(drawableResourceId); 
} 
関連する問題