как повернуть весь относительный макет в 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;
            }
        });

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


person deepa    schedule 09.09.2011    source источник
comment
что вы подразумеваете под тем, что он запускается сразу после того, как это событие касания не воспринимается   -  person blessenm    schedule 09.09.2011
comment
когда я касаюсь изображения, макет вращается, но когда я снова касаюсь изображения, событие касания не прослушивается.   -  person deepa    schedule 09.09.2011


Ответы (1)


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

Поэтому, если вы не обновите макет вручную, изображение и его область ответа будут в старом положении, даже если они не видны.

person blessenm    schedule 09.09.2011