0

アプリでアニメーションを使用しています。私のアニメーションは、小さなレイアウトを画面の半分の位置に移動しています。そのようにしたいと思います。

私の問題は、を使用するparams.setMargins(500, 0, 0, 0); resetButton.setLayoutParams(params);と、レイアウト自体が再配置され、その中のすべてのビューが小さくなり、つぶれてしまうことです。

画面の外にあるにもかかわらず、レイアウトをそのままにしておきたい。それは可能ですか?

コードを追加します:

SetAnimationParameters(true);
        mainLayout.startAnimation(animationSet);
        animationSet.setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mainLayout.clearAnimation();
                RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mainLayout
                        .getLayoutParams();
                params.setMargins(500, 0, 0, 0);

                mainLayout.setLayoutParams(params);
            }
        });

アニメーションパラメータを設定する場所は次のとおりです。

private void SetAnimationParameters(boolean isRight) {
    if (isRight) {
        TAnimation = new TranslateAnimation(0, 500, 0, 0);
    } else {
        TAnimation = new TranslateAnimation(500, 0, 0, 0);
    }
    TAnimation.setDuration(250);
    animationSet = new AnimationSet(false);
    animationSet.setFillAfter(true);
    animationSet.addAnimation(TAnimation);
}

アニメーションが完了した後(onAnimationEnd)にわかるように、ビューをアニメーションが終了した場所に変換しているので、使用できるようになります。しかしその後(そしてそれが私の問題です)、レイアウトが再配置されるので、その中のすべてのビューが縮小されて画面から外れることはありません。私はそれを望んでいません。中途半端な視界を維持してほしい。

私はなんとか明確にできましたか?

4

0 に答える 0