2012-02-13 3 views
2

Я создал viewflipper, чтобы перевернуть между 2 видами в android.viewflipper только следующая анимация

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

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

любые идеи?

ответ

3

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

//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); 

+0

что, если я всегда хочу, чтобы анимировать правильно? – Vincenzo

+0

В этом случае установите flipper.setInAnimation (InFromRight); flipper.setOutAnimation (OutToLeft); и не меняйте их. Эти анимации затем будут использоваться для любого последующего вызова setDisplayedChild – andrrs

+0

отлично, спасибо! – Vincenzo

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