1

OK .. XMLで「0%」から「50%」に変換するための小さな画像ビュー用にこのアニメーションを設定しました...

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

    <translate
        android:duration="400"
        android:fromXDelta="0%"        
        android:toXDelta="+50%" />    
</set>

この後、Y座標を「0%」から「50%」に変更する別のシーケンシャルアニメーションを追加する必要があります。別のアニメーションを追加しようとしまし<set>たが、機能しませんでした...シーケンシャルアニメーションを取得するにはどうすればよいですか?

4

2 に答える 2

2

android:startOffsetを使用して、アニメーションを遅らせることができます。Delay in milliseconds before the animation runs, once start time is reached. Must be an integer value, such as "100".-「developer.android.com」

もう1つの方法は、AnimationListenerを使用してアニメーションを「リッスン」し、好きなことを実行できることです。

このリンクはあなたに役立ちます:いくつかの翻訳アニメーションを順番に実行する方法は?

于 2012-12-28T08:36:36.363 に答える
1

あなたが本当に何をしたいのか完全にはわかりませんが、「x」と「y」の両方を同時に「翻訳」したい場合は、単に既存のに追加android:fromYDelta="0%"してください。android:toYDelta="+50%"<translate>

X値の後にY値を「変換」する場合は、新しいXMLファイルが必要になります。このXMLファイルは、X値が終了したときに呼び出す必要があります。

簡単な、テストされていない例:

mAnimatedView = findViewById(R.id.viewToAnimate);

mAnimX = (TranslateAnimation) AnimationUtils.loadAnimation(mContext, R.anim.aX);
mAnimY = (TranslateAnimation) AnimationUtils.loadAnimation(mContext, R.anim.aY);

mAnimX.setAnimationListener(new AnimationListener(){
    @Override
    public void onAnimationEnd(Animation animation) {
        if (mAnimatedView) {
            mAnimatedView.startAnimation(mAnimY);
        }
    }
    @Override
    public void onAnimationRepeat(Animation animation) {
    }
    @Override
    public void onAnimationStart(Animation animation) {
    }
}); 
mAnimY.setAnimationListener(new AnimationListener(){
    @Override
    public void onAnimationEnd(Animation animation) {
        if (mAnimatedView) {
            mAnimatedView.startAnimation(mAnimX);
        }
    }
    @Override
    public void onAnimationRepeat(Animation animation) {
    }
    @Override
    public void onAnimationStart(Animation animation) {
    }
});

mAnimatedView.startAnimation(mAnimX);

それが助けになり、十分に明確であることを願っています。

于 2012-12-28T08:47:59.043 に答える