2011-08-12 8 views
3

私は、画面の右上に画像を取り込み、30%の点に移動し、円で動かし、端に戻ってくる単純なアニメーションを設定しようとしています。下の図を参照してください。しかし、現在のスクリプトは、奇妙なことを行い、正しい場所で終わっている間に、その直前にはほとんど何も見えません。また、Androidのバージョンや画面サイズによっては、さらに荒いものがあるかもしれません。どんな助けでも大歓迎です。ありがとう!アニメーションの問題

enter image description here

キーポイントのカップル。私は最初の左端が常に動きの方向に向くようにしたい。私は左から右に移動する円運動が欲しいですが、行えない場合は、最初の部分が成立する限り、私はそれに設定されていません。

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:shareInterpolator="true"> 
    <set> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="0%p" 
      android:fromYDelta="00%p" android:toYDelta="20%p" 
      android:duration="001" android:startOffset="0"/> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="-80%p" 
      android:fromYDelta="00%p" android:toYDelta="0%p" 
      android:duration="2000" android:startOffset="1"/> 
    </set> 
    <set> 
     <rotate 
      android:fromDegrees="180" 
      android:toDegrees="0" 
      android:pivotY="20%p" 
      android:duration="1000" 
      android:startOffset="2000"/> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="70%p" 
      android:fromYDelta="00%p" android:toYDelta="0%p" 
      android:duration="100" 
      android:startOffset="3000"/> 
    </set> 
</set> 

答えて

2

で使用されるコードでありますメインのxmlレイアウトのボタンを含む新しいアンドロイドプロジェクト出来た。すべてのパーセンテージはビューの位置を基準とした親のサイズです。

<?xml version="1.0" encoding="utf-8"?> 

<set xmlns:android="http://schemas.android.com/apk/res/android" > 

<translate android:fromXDelta="0%p" android:toXDelta="-80%p" 
    android:fromYDelta="0%p" android:toYDelta="0%p" 
    android:duration="2000" /> 

<rotate android:fromDegrees="0" android:toDegrees="-180" 
     android:pivotX="-70%p" android:pivotY="10%p" android:duration="1000" 
     android:startOffset="2000" /> 

<translate 
    android:fromXDelta="0%p" android:toXDelta="80%p" 
    android:fromYDelta="0%p" android:toYDelta="0%p" android:duration="2000" 
    android:startOffset="3000" /> 

</set> 
+0

私はこのコンビネーションを試みたと思っていましたが、それについては何かがうまくいきませんでした。私ができるときに賞金を授与します。助けてくれてありがとう! – PearsonArtPhoto

+0

実際、すべてのバージョンでそれをチェックアウトしただけです。それは2.1以前ではうまくいきました。2.2とそれ以降の面白いことをしています...具体的には、最初の翻訳のために間違った方向に行きます(正しい場所に終わりますが)。それでも、それは私が今まで持っているものよりも改善されています。 – PearsonArtPhoto

+0

あなたはどのバージョンをターゲットにしていますか? – Ronnie

0

図面に記載されているアニメーションを作成しようとしました。私は

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:shareInterpolator="true"> 
    <set> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="-80%p" 
      android:fromYDelta="00%p" android:toYDelta="0%p" 
      android:duration="2000" android:startOffset="0"/> 
     <translate 
      android:fromXDelta="0%p" android:toXDelta="0%p" 
      android:fromYDelta="00%p" android:toYDelta="20%p" 
      android:duration="2000" android:startOffset="2000"/>   
    </set> 
</set> 

right.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="-80%p" android:toXDelta="0%p" android:fromYDelta="20%p" 
    android:toYDelta="20%p" android:duration="2000" android:fillAfter="true"/> 

left_down.xml 2つのファイル でアニメーションを分割し、これは私がでこれをやったアクティビティ

image = (ImageView)findViewById(R.id.image); 

     anim = AnimationUtils.loadAnimation(this, R.anim.left_down); 
     goBack = AnimationUtils.loadAnimation(this, R.anim.right); 
     anim.setAnimationListener(new AnimationListener() {    
      @Override 
      public void onAnimationStart(Animation animation) {} 

      @Override 
      public void onAnimationRepeat(Animation animation) {} 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       image.startAnimation(goBack);  
      } 
     }); 
image.startAnimation(anim); 
+0

私はそれが十分に引き出すなかったと仮定し、理想的に私はそれはそれからさらに他の方向を向いて、緩やかな運動で右向きに左を向くから行ってきましたように、移動されたオブジェクトの円を持っていると思います右の方へ。言い換えれば、常に動きの方向を向いている。説明をよくするために私の質問を編集します。 – PearsonArtPhoto