2014-01-11 5 views
5

私はEclipse用のAndroid用ゲームを開発しています。画像をスムーズに上下に翻訳して、無限に浮かび上がるように見せています。つまり、それはスムーズに変換されますが、下から上への移行では不安定になります。逆もまた同様です。私はデルタとデデルタがどのようにユニットまで働いているかをしっかりと把握しているとは思わない。私はこのサイトとgoogleでこの情報を検索しようとしましたが、このように他のすべての問題に対する解決策を見つけることができましたが、この解決策を見つけることができませんでした。XMLでの翻訳を使用したスムーズフローティングアニメーション

XMLアニメーションファイルのための私のコードは以下の通りです:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:fillEnabled="true" 
android:fillAfter="true" > 

<alpha android:fromAlpha="0.0" android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="1000" 
     android:fillAfter="true"/> 

<translate 
android:interpolator="@android:anim/linear_interpolator" 
android:fromYDelta="0%p" 
android:toYDelta="10%p" 
android:duration="2000" 
android:startOffset="0" 
android:repeatCount="infinite"></translate> 

<translate 
android:interpolator="@android:anim/linear_interpolator" 
android:fromYDelta="10%p" 
android:toYDelta="-10%p" 
android:duration="2000" 
android:startOffset="2000" 
android:repeatCount="infinite"></translate> 

</set> 

私は2番目の変換では0%pに10%pからやってみましたが、それは動作しませんでした。また、10%pから0%pにも及ばない。どんな助けでも大歓迎です。ありがとう!

+0

は、Math.sin()関数を使って補間したカスタム補間器を試してみてください – pskink

答えて

11

修正済み!興味のある人には、私は最終的に私の問題の修正を見つけました。リピートモードを逆にして、動きを変換するだけで済ませなければなりませんでした。解決策は以下の通りです:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:fillEnabled="true" 
android:fillAfter="true" > 

<alpha android:fromAlpha="0.0" android:toAlpha="1.0" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:duration="1000" 
    android:fillAfter="true"/> 

<translate 
android:interpolator="@android:anim/linear_interpolator" 
android:fromYDelta="0%p" 
android:toYDelta="10%p" 
android:duration="2000" 
android:startOffset="0" 
android:repeatCount="infinite" 
android:repeatMode="reverse"></translate> 

関連する問題