5

スケール アニメーション後のビューが、新しい位置にサイズ変更されていません。

Androidアニメーション(ScaleAnimation)を使用して、レイアウト(開始時の画面サイズ)を0.95倍のサイズにスケーリングし、スケールは画面の中心点を参照します。

final AnimationListener al2 = new AnimationListener() {

    @Override
    public void onAnimationStart(Animation arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAnimationRepeat(Animation arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAnimationEnd(Animation arg0) {

    }
};
public void animScale(){
    ScaleAnimation sa = new ScaleAnimation(1,0.95f,1,0.95f, topLayout.getMeasuredWidth()/2, topLayout.getMeasuredHeight()/2);
    sa.setDuration(500);
    sa.setFillEnabled(true);
    sa.setFillAfter(true);
    sa.setAnimationListener(al2);
    topLayout.startAnimation(sa);

}

public void onCreate(Bundle savedInstanceState) {   

    scaleButton = (Button) findViewById(R.id.scaleButton);
    scaleButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            animScale();
        }
    });
}

このアニメーションの後、私のレイアウトは新しい位置に変更されましたが、もう一度ボタンをクリックすると

レイアウトは常に画面サイズのスケールから 0.95 倍までです。

これは、レイアウトがアニメーションを通じて実際のサイズを決して変更しないことを示しています。

アニメーションリスナーのアニメーション終了に追加する必要があるコードは何ですか?

ボタンをクリックすると、画面サイズ -> 画面サイズ *0.95 -> 画面サイズ *0.95^2 ->.........

どうもありがとう。

4

2 に答える 2