2011-09-09 2 views
1

Я разрабатываю приложение для Android. Мне нужно повернуть весь макет, когда пользователь коснется и перетащит изображение в макете. Я использую относительный макет. В этом я имею один вид изображения и кнопку перетаскивания и одно изображение в качестве фона для относительной компоновки. Теперь мне нужно повернуть всю относительную компоновку, когда кнопка перетаскивания находится в движении.как повернуть весь относительный макет в android

При попытке с анимацией поворота он запускается сразу после этого события касания, которое не воспринимается. Я добавил свой код ниже:

   anim = new RotateAnimation(0, -15f, Animation.RELATIVE_TO_SELF, 0f, 
       Animation.RELATIVE_TO_SELF, 0f); 

     anim.setInterpolator(new LinearInterpolator()); 

     anim.setDuration(700); 
     anim.setFillAfter(true); 

     anim.setAnimationListener(MainActivity.this); 


     rotationctrl.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     innerlayout.startAnimation(anim); 
     } 
     else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
     } else if (event.getAction() == MotionEvent.ACTION_UP) { 
       } 

       return true; 
      } 
     }); 

В чем проблема. где я делаю ошибка .. пожалуйста, помогите мне.

+0

Что вы подразумеваете под словом «он запускается сразу после этого события касания не ощущается» – blessenm

+0

когда я касаюсь изображения, макет вращается, но когда я снова касаюсь изображения, касание события не прослушивалось. – deepa

ответ

1

Анимация Android сдвигает только пиксели макетов пользовательского интерфейса, когда вы добавляете к ним анимацию. Чтобы на самом деле обновить макет после анимации, вы должны реализовать прослушиватель анимации и вручную обновить макет, но старый макет все равно останется с только сдвинутыми пикселями.

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

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