видоискатель только следующая анимация - PullRequest
2 голосов
/ 14 февраля 2012

Я создал видоискатель для переключения между 2 видами в Android.

Проблема в том, что я хочу переключаться между этими двумя видами , используя ту же анимацию (вставьте). Он работает, когда я переворачиваю с вида 1 -> вид 2, но использует обратную анимацию, когда я переворачиваю с вида 2 -> вид 1

То же самое происходит, когда я использую 3 вида, все нормально, если переворачивать 1-> 2-> 3, но при 3-> 1

используется обратная анимация

есть идеи?

1 Ответ

3 голосов
/ 14 февраля 2012

Если вам это нравится, вы будете полностью контролировать анимацию и перелистывание страниц:

//ViewFlipper
ViewFlipper flipper;
//Four different animations
Animation OutToRight;
Animation OutToLeft;
Animation InFromRight;
Animation InFromLeft;        

OutToRight = new TranslateAnimation(
              Animation.RELATIVE_TO_PARENT,  0.0f,      Animation.RELATIVE_TO_PARENT,  +1.0f,
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
OutToRight.setDuration(500);
        OutToRight.setInterpolator(new AccelerateDecelerateInterpolator());

        OutToLeft = new TranslateAnimation(
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
      OutToLeft.setDuration(500);
    OutToLeft.setInterpolator(new AccelerateDecelerateInterpolator());

    InFromRight = new TranslateAnimation(
              Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,   0.0f,
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
    InFromRight.setDuration(500);
      InFromRight.setInterpolator(new AccelerateDecelerateInterpolator());

    InFromLeft = new TranslateAnimation(
                  Animation.RELATIVE_TO_PARENT,  -1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
                  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
                );
    InFromLeft.setDuration(500);
    InFromLeft.setInterpolator(new AccelerateDecelerateInterpolator());

    //Animating Left to page 1

    flipper.setInAnimation(InFromLeft);
    flipper.setOutAnimation(OutToRight);
    flipper.setDisplayedChild(1);

    //Animating right to page 2
    flipper.setInAnimation(InFromRight);
    flipper.setOutAnimation(OutToLeft);
    flipper.setDisplayedChild(2);

...