2014-01-03 2 views
-1

Я хочу анимировать три изображения один за другим в одной и той же деятельности. В начале анимации первое изображение появляется в течение некоторого времени, затем второе, а затем третье. Я использую фреймовую анимацию за то же самое, но моя проблема в том, что я хочу, чтобы анимация каждый раз я потрогать код screen.The прояснитОдиночные изображения в той же деятельности

final AnimationDrawable animation = new AnimationDrawable(); 

    animation.addFrame(getResources().getDrawable(R.drawable.hammer_one), 200); 
    animation.addFrame(getResources().getDrawable(R.drawable.hammer_two), 200); 
    animation.addFrame(getResources().getDrawable(R.drawable.hammer_three), 200); 

    animation.setOneShot(true); 

    img[0] = (ImageView)findViewById(R.id.ImageViewPreview); 
    img[1] = (ImageView)findViewById(R.id.ImageViewPreview1); 
    img[2] = (ImageView)findViewById(R.id.ImageViewPreview2); 
    img[3] = (ImageView)findViewById(R.id.ImageViewPreview3); 
    img[4] = (ImageView)findViewById(R.id.ImageViewPreview4); 

это выше, являются imageviews в моем макете.

for(i = 0 ; i<5 ; i++){ 

     img[i].setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent event) { 

       if(event.getAction() == MotionEvent.ACTION_DOWN) { 

        int num = event.getPointerCount(); 

        for (int a = 0; a < num; a++) { 
          int x = (int) event.getX(event.getPointerId(a)); 
          int y = (int) event.getY(event.getPointerId(a)); 
          Log.e("x",x + " "); 
          Log.e("y",y + " "); 
         } 

        arg0.setBackgroundDrawable(animation); 
        animation.start(); 

        return true; 
       }else if(event.getAction() == MotionEvent.ACTION_UP) { 

        int num = event.getPointerCount(); 

        for (int a = 0; a < num; a++) { 
          int x = (int) event.getX(event.getPointerId(a)); 
          int y = (int) event.getY(event.getPointerId(a)); 
          Log.e("x",x + " "); 
          Log.e("y",y + " "); 
         } 

        arg0.setBackgroundDrawable(animation); 
        animation.start(); 

        return true; 
       } 

       return false; 
      } 
     }); 
    } 

The above is the code for onTouch i.e when the layout is touched. 

Теперь выше код работает отлично, насколько первый контакт является concerned.But, когда я потрогать макет во второй раз только изображение appers но анимация не appears.Please помочь

ответ

0

Может ли проблема быть с animation.setOneShot(true);? Возможно, установите значение false. Или, в каждом событии onTouch, создайте новый объект анимации, вместо того, чтобы повторно использовать тот же объект анимации, на котором вы уже звонили setOneShot(true);.

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