android – 从ImageView获取资源ID

前端之家收集整理的这篇文章主要介绍了android – 从ImageView获取资源ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试开发一个小游戏.

我有一个ViewFlipper在ImageViews中有50张图片(随机频率为4张图片).然后我有4个按钮与相同的4张图片可以出现在ViewFlipper.

任务是在出现右图时单击右键.
(当图片1出现时,必须按下按钮1等等)

我的问题是我不知道如何获取显示的ImageView ID.

  1. flipper.getCurrentView().getId()

给我“-1”作为Id.但是我想要有“R.drawable.pic1”的Id

我的代码到目前为止

我的装载机方法

  1. protected void loadPicturesIntoFlipper() {
  2.  
  3. Random generator = new Random();
  4. pictures = new ArrayList();
  5.  
  6. for(int i = 0; i < 50;i++){
  7.  
  8. int number = generator.nextInt(4) + 1;
  9.  
  10. if(number == 1){
  11. pic = R.drawable.pic1;
  12. }
  13. if(number == 2){
  14. pic = R.drawable.pic2;
  15. }
  16. if(number == 3){
  17. pic = R.drawable.pic3;
  18. }
  19. if(number == 4){
  20. pic = R.drawable.pic4;
  21. }
  22.  
  23. pictures.add(pic);
  24. }
  25.  
  26.  
  27. for(int i=0;i<pictures.size();i++)
  28. {
  29.  
  30. setFlipperImage((Integer) pictures.get(i));
  31. }
  32.  
  33.  
  34.  
  35. }

我的插入方法

  1. private void setFlipperImage(int res) {
  2.  
  3. image = new ImageView(getApplicationContext());
  4. image.setBackgroundResource(res);
  5. flipper.addView(image);
  6. }

我的检查方法

  1. protected void check(int number,int id) {
  2. int code = 0;;
  3.  
  4. if(number == 1){
  5. code = R.drawable.button_tip_finder;
  6. }
  7. if(number == 2){
  8. code = R.drawable.button_about_us;
  9. }
  10. if(number == 3){
  11. code = R.drawable.button_power_calculator;
  12. }
  13. if(number == 4){
  14. code = R.drawable.button_powerpedia;
  15. }
  16.  
  17.  
  18.  
  19. if(code == id){
  20. test.setText(""+id);
  21. }
  22. else{
  23. test.setText(""+id);
  24. }
  25.  
  26.  
  27. }

我称之为:

  1. button1.setOnClickListener(new OnClickListener() {
  2.  
  3. @Override
  4. public void onClick(View arg0) {
  5. check(1,flipper.getCurrentView().getId());
  6. flipper.showNext();
  7.  
  8. }
  9. });

解决方法

像这样做:
  1. private void setFlipperImage(int res) {
  2. image = new ImageView(getApplicationContext());
  3. image.setBackgroundResource(res);
  4. image.setTag(res); //<------
  5. flipper.addView(image);
  6. }

接着:

  1. button1.setOnClickListener(new OnClickListener() {
  2.  
  3. @Override
  4. public void onClick(View arg0) {
  5. check(1,(Integer)flipper.getCurrentView().getTag());//<----
  6. flipper.showNext();
  7. }
  8. });

请您在所有代码中使用其他代码,例如:

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

猜你在找的Android相关文章