-2

RotateAnimationを使用して以前に回転したレイアウトでアニメーションを作成しようとしています。私がやりたいアニメーションは、状況に応じてフェードインとフェードアウトです

aLayout = (LinearLayout) _context.findViewById(R.layout.layoutId);

    AlphaAnimation fadeIn = new AlphaAnimation(0, 1.0f);
    AlphaAnimation fadeOut = new AlphaAnimation(1.0f, 0);
    fadeIn.setDuration(500);
    fadeOut.setDuration(500);
    fadeIn.setFillAfter(true);
    fadeOut.setFillAfter(true);

私が適用する状況に応じて:

aLayout.startAnimation(fadeIn);

また

aLayout.startAnimation(fadeOut);

確認しましたが、アニメーションが同時に開始しようとしていません。動作は、私のレイアウトが部分的にフェードインしていることです。

「見えない部分」そして「見える部分」を持つ代わりに

レイアウトの一部のみを取得しました'invisiblepart' to'in lert'。

それは完全にランダムに見えるので、それがどこから来るのかについて何か考えがある場合に備えて、私はあなたに尋ねています。ローテーションの前に、このアルファのものはうまく機能しますが、一度それを行うと、この予期しない動作が始まります

私は2.2から4.1まで働いています。どんな助けもいただければ幸いです。ありがとう

編集:これを理解することはできません。誰 ?

4

2 に答える 2

0

私はこれを使用してフェードアウトアニメーションを使用します:

public void fadeout(final View view) {
    // Start Fade Animation
    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator());
    fadeOut.setStartOffset(1000);
    fadeOut.setDuration(1000);
    AnimationSet animation = new AnimationSet(false);
    animation.addAnimation(fadeOut);
    view.startAnimation(animation);
}

レイアウトルートを取得した後にフェードアウトするアクティビティのコンテンツビューを設定した後、onCreateでこれを呼び出します。

    View layoutRoot = findViewById(R.id.splashscreen);
    fadeout(layoutRoot);

回転部分は、でアニメーションを呼び出すことができますonConfigurationChanged

于 2012-08-20T16:45:02.767 に答える
0

Androidのバグのようです。それを解決する方法を理解できませんでした。とにかく、私はこれを行う別の方法を見つけました。レイアウトを回転させる代わりに、UIElementのみを回転させ、回転させて、アニメーション化する要素を2回作成する必要がありました。1つは垂直位置用で、もう1つは水平位置用です。

これが私が見つけた唯一の方法です

于 2012-08-29T14:39:15.567 に答える