2011-08-03 2 views
1

私はAndroidのアニメーションに関する良いドキュメントを見つけるのに苦労しましたが、私はアニメーションを動かすことができました。私がそれをやったやり方について懸念しているのは、効率/性能です。TranslateAnimationを使って何かを画面上に何度も何度も移動させる効率的な方法

私の目標は、雲のイメージを何度も何度も画面上を移動させて、それを永遠に繰り返すことでした。これを行うには、私はお互いの上に配置2つの同一ImageViewsを入れて2つのアニメーションを定義することになった:

cloud_slide_exit.xml:

cloud_slide_enter.xml
<translate 
     android:fromYDelta="0" 
     android:toXDelta="-100%p" 
     android:duration="25000" 
     android:repeatCount="infinite" 
     android:repeatMode="restart" 
     /> 

<translate 
     android:fromYDelta="0" 
     android:fromXDelta="100%p" 
     android:duration="25000" 
     android:repeatCount="infinite" 
     android:repeatMode="restart" 
     /> 

は、私が最初にアニメーションを適用「image1」に、2番目の画像を「image2」に変換する。最初のアニメーションは右(オンスクリーン)から左(オフスクリーン)へ「image1」を移動し、2番目のアニメーションは右(オフスクリーン)から左(オンスクリーン)まで「image2」を移動します。両方のアニメーションを表示すると、最終的に画像が画面上を移動します。画面の左端に達すると、画面の右側から開始されます。これが私がこれを行うと考えることができる唯一の方法です。

このアニメーションを実行するより効率的な方法はありますか?実際に3つの雲が動いているので、私は6つのImageViews/TranslateAnimationsを持っているので、私はより効率的な方法を見つけたいと思います。

答えて

0

コードに続くことによってあなたのコードを置き換える:

cloud_slide_exit.xml:

<translate 
     android:fromXDelta="100%p" 
     android:toXDelta="0%p" 
     android:duration="25000" 
     android:repeatCount="infinite" 
     android:repeatMode="restart" 
     /> 

cloud_slide_enter.xml:

<translate 
     android:fromXDelta="100%p" 
     android:toXDelta="0%p" 
     android:duration="25000" 
     android:repeatCount="infinite" 
     android:repeatMode="restart" 
     /> 
+0

Ilango J、同じ動作を保持しません。私はそれを試したところ、雲は左から右へ(スクリーンからスクリーンへ)移動してから、元の位置にリセットされます。あなたが実際にそれをチェックアウトしたい場合は、ミルクをダウンロード/インストールしてください。 – Marvin

関連する問題