2013-01-03 132 views
14

我無法將視圖動畫放入膨脹的佈局中。 我用下面的代碼片段查看動畫從右到左android

pageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml)); 

和XML

<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shareInterpolator="false"> 
    <translate android:fromXDelta="0%" android:toXDelta="100%" 
      android:fromYDelta="0%" android:toYDelta="0%" 
     android:duration="700"/> 

</set> 

是什麼東西不見了?

謝謝。

+0

當您嘗試運行動畫時,您會得到什麼? – WarrenFaith

+0

當動畫一個視圖時,它只是從左到右滑動,然後從右到左滑動。 – sd33din90

+0

,你想要發生什麼呢? – WarrenFaith

回答

55

下面是用於查看,滑動動畫的代碼。

1)inFromRightAnimation 

    private Animation inFromRightAnimation() { 

     Animation 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 AccelerateInterpolator()); 
     return inFromRight; 
     } 

2)outToLeftAnimation 
    private Animation outToLeftAnimation() { 
    Animation 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 AccelerateInterpolator()); 
    return outtoLeft; 
    } 

3)inFromLeftAnimation 

    private Animation inFromLeftAnimation() { 
    Animation 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 AccelerateInterpolator()); 
    return inFromLeft; 
    } 

4)outToRightAnimation 

    private Animation outToRightAnimation() { 
    Animation 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 AccelerateInterpolator()); 
    return outtoRight; 
    } 

現在開始動畫視圖上

pageView.startAnimation(inFromRightAnimation()); 

感謝,

+1

但是如何爲視圖啓動動畫。 –

+0

yourview.startAnimation(inFromRightAnimation()); –

+0

非常好的答案 – Lokesh

1

如果您要在首次創建視圖時爲其設置動畫效果,那麼您需要設置layoutAnimation XML屬性或致電setLayoutAnimation()

如果你只是想讓你的視圖看起來像移動,你需要一個TranslateAnimation;看到這個答案:https://stackoverflow.com/a/4214490/832776 此外,如果你想重複動畫,然後撥打電話setAnimationListener()onAnimationEnd()只需再次啓動動畫。

如果你想永久移動視圖,請參閱本:http://www.clingmarks.com/how-to-permanently-move-view-with-animation-effect-in-android/400

1

我知道你已經接受了答案。但我認爲這個回覆會對讀者有所幫助。您可以嘗試從中刪除.xmlpageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml));