как повернуть всю относительную раскладку в андроиде - PullRequest
1 голос
/ 09 сентября 2011

Я занимаюсь разработкой приложения для 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;
            }
        });

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

1 Ответ

1 голос
/ 09 сентября 2011

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

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

...