2012-04-16 7 views
2

RelativeLayoutでViewの位置をアニメーション化しようとしました。すべてのフレームで、ViewのLayoutParamsのtopMarginを変更し、View#setLayoutParams(newParams)を呼び出します。レイアウトのアニメーション表示(ハニカム前)

残念ながら、setLayoutParams()呼び出しがViewツリー全体を再測定するため、アニメーションが遅すぎます。

API 11+を使用せずにこれを解決するにはどうすればよいですか?

答えて

2

View Animationsあなたのビューの移動方法を定義している翻訳アニメーションを含むxmlファイルを作成するだけです。その後、アニメーションへの参照を膨らませて

view.startAnimation(anim); 

translate xmlファイルの例を示します。 res/anim/

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/overshoot_interpolator"> 

<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="700"/> 


</set> 

このようなファイルは、次のように保存します。ここでは、このファイルを使用する方法を説明します。

Animation slideLeftIn; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); 
    //mView can be any View object. 
    mView.startAnimation(slideLeftIn); 
} 
関連する問題