2016-12-23 2 views
1

В моем приложении я хочу случайным образом выбрать изображение и поместить его в центр экрана. После этого можно выполнить анимацию, после чего изображение будет перемещено и сбрасывается в исходное положение. Затем я хочу выбрать новое изображение корпуса коммутатора, но изображение всегда остается неизменным. Как я могу это исправить?android - повторить оператор switch

public class MainActivity extends Activity implements OnGestureListener 
{  

     private ImageView imageView; 
     float x1,x2; 
     float y1, y2; 
     public int sco = 0; 
     TextView score; 
     final Random rand = new Random(); 

      @Override 
      protected void onCreate(Bundle savedInstanceState) 
      {   
         super.onCreate(savedInstanceState);      
         setContentView(R.layout.activity_main);       
         imageView = (ImageView) findViewById(R.id.imageview1); 
         imageView.setImageResource(getMyRandomResId()); 
         score = (TextView)findViewById(R.id.textView2);     
      } 


      int imag = rand.nextInt(4); 
       int getMyRandomResId() { 


        switch (imag) { 
        case 0: 

         return R.drawable.a; 
        case 1: 

         return R.drawable.b; 
        case 2: 

         return R.drawable.c; 
        default: 

         return R.drawable.d; 
       } 
      } 


      private boolean animationRunning = false; 

      public boolean onTouchEvent(MotionEvent touchevent) 
      { 

       final ViewPropertyAnimator animator = imageView.animate(); 

       switch (touchevent.getAction()) 
       { 

        case MotionEvent.ACTION_DOWN: 
        { 

         x1 = touchevent.getX(); 
         y1 = touchevent.getY(); 
         break; 
        } 
        case MotionEvent.ACTION_UP: 
        { 

         x2 = touchevent.getX(); 
         y2 = touchevent.getY(); 

         if (!animationRunning) { 
        //left to right sweep event on screen 
         if (x1 < x2 && (x2-x1)>=(y1-y2) && (x2-x1)>=(y2-y1)) { 

          animationRunning = true;       
          animator.translationX(imageView.getWidth() * 2)        
            .setDuration(180)          
            .setListener(new AnimatorListenerAdapter() { 
             @Override 
             public void onAnimationEnd(Animator animation) { 
              if(getMyRandomResId() == R.drawable.ballgrue) { 
               sco++; 
              } 
              imageView.setTranslationX(0); 
              imageView.setImageResource(getMyRandomResId()); 
              animationRunning = false; 

             } 
            }) 
            .start();   
         } 
      } 
      } 
      } 
     } 
} 
+0

Могу ли я поставить его в методе без потери 'getMyRandomResId()' части? –

+0

Пройдите через свой код с помощью отладчика. Вероятно, это самый быстрый способ найти основную причину проблемы. –

+0

Но если отсутствует метод, который скажет отладчик? –

ответ

1
  int getMyRandomResId() { 

    int imag = rand.nextInt(4); 
       switch (imag) { 
       case 0: 

        return R.drawable.a; 
       case 1: 

        return R.drawable.b; 
       case 2: 

        return R.drawable.c; 
       default: 

        return R.drawable.d; 
      } 
     } 

причины вы получили то же образ bcoz этого только

Надеется, что это помогает

+0

Извините за предыдущий ответ, моя ошибка только это поможет вам, конечно! !!!!!!!! –

+0

Спасибо, он работает –

Смежные вопросы