• android代码实现ScaleAnimation


    package com.yangguangfu.cn;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.animation.Animation;
    import android.view.animation.Animation.AnimationListener;
    import android.view.animation.ScaleAnimation;
    import android.widget.ImageView;

    public class ScaleAnimationDemoActivity extends Activity implements
            OnClickListener {

        private ImageView top_left;
        private ImageView top_right;
        private ImageView bottom_left;
        private ImageView bottom_right;
        private ImageView center;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) { // 要使用findViewById,
            super.onCreate(savedInstanceState); // 做为使用者介面
            setContentView(R.layout.second);

            // 取得UI 介面中的View 物件
            // 取得View 物件后,再透过转换成实际的物件
            top_left = (ImageView) findViewById(R.id.top_left);
            top_right = (ImageView) findViewById(R.id.top_right);
            bottom_left = (ImageView) findViewById(R.id.bottom_left);
            bottom_right = (ImageView) findViewById(R.id.bottom_right);
            center = (ImageView) findViewById(R.id.center);
            top_left.setOnClickListener(this);
            top_right.setOnClickListener(this);
            bottom_left.setOnClickListener(this);
            bottom_right.setOnClickListener(this);
            center.setOnClickListener(this);

        }

        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.top_left:
                topLeftScaleAnimation(v);
                break;
            case R.id.top_right:
                topRightScaleAnimation(v);
                break;
            case R.id.bottom_left:
                bottomLiftScaleAnimation(v);
                break;
            case R.id.bottom_right:
                bottomRightScaleAnimation(v);
                break;
            case R.id.center:
                centerScaleAnimation(v);

                break;
            }
        }

        private Animation topLeftanimation;
        private boolean istopLeft = false;

        private void topLeftScaleAnimation(final View v) {

            if (!istopLeft) {

                topLeftanimation = new ScaleAnimation(1.0f, 4.0f, 1.0f, 4.0f,
                        Animation.RELATIVE_TO_SELF, 0.0f,
                        Animation.RELATIVE_TO_SELF, 0.0f);

                istopLeft = true;

            } else {
                topLeftanimation = new ScaleAnimation(4.0f, 1.0f, 4.0f, 1.0f,
                        Animation.RELATIVE_TO_SELF, 0.0f,
                        Animation.RELATIVE_TO_SELF, 0.0f);
                istopLeft = false;

            }

            // 动画开始到结束的执行时间(1000 = 1 秒)
            topLeftanimation.setDuration(2000);

            // 动画重复次数(-1 表示一直重复)
            // am.setRepeatCount(1);
            topLeftanimation.setAnimationListener(new AnimationListener() {

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

                }

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

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    top_left.setEnabled(true);

                }
            });
            topLeftanimation.setFillAfter(true);
            // 图片配置动画
            top_left.setAnimation(topLeftanimation);

            // Help();
            // handler.sendEmptyMessageDelayed(topHand, 2000);
            // top_left.setLayoutParams(lp);
            // 动画开始
            topLeftanimation.startNow();

            top_left.setEnabled(false);
        }

        private static final int topHand = 6;

        private boolean isBottomLift = false;
        Animation bottomLiftScaleAnimation = null;

        private void bottomLiftScaleAnimation(View v) {

            if (!isBottomLift) {
                bottomLiftScaleAnimation = new ScaleAnimation(1.0f, 4.0f, 1.0f,
                        4.0f, Animation.RELATIVE_TO_SELF, 0f,
                        Animation.RELATIVE_TO_SELF, 1.0f);
                isBottomLift = true;
            } else {
                bottomLiftScaleAnimation = new ScaleAnimation(4.0f, 1.0f, 4.0f,
                        1.0f, Animation.RELATIVE_TO_SELF, 0f,
                        Animation.RELATIVE_TO_SELF, 1.0f);
                isBottomLift = false;
            }

            // 动画开始到结束的执行时间(1000 = 1 秒)
            bottomLiftScaleAnimation.setDuration(2000);

            // 动画重复次数(-1 表示一直重复)
            // bottomLiftScaleAnimation.setRepeatCount(-1);
            bottomLiftScaleAnimation.setFillAfter(true);
            // 图片配置动画
            bottom_left.setAnimation(bottomLiftScaleAnimation);
            bottomLiftScaleAnimation.setAnimationListener(new AnimationListener() {

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

                }

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

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    bottom_left.setEnabled(true);
                }
            });
            // 动画开始
            bottomLiftScaleAnimation.startNow();
            bottom_left.setEnabled(false);
        }

        private boolean isBottomRigth = false;
        Animation bottomRightScaleAnimation;

        private void bottomRightScaleAnimation(View v) {
            if (!isBottomRigth) {
                bottomRightScaleAnimation = new ScaleAnimation(1.0f, 4.0f, 1.0f,
                        4.0f, Animation.RELATIVE_TO_SELF, 1.0f,
                        Animation.RELATIVE_TO_SELF, 1.0f);
                isBottomRigth = true;
            } else {
                bottomRightScaleAnimation = new ScaleAnimation(4.0f, 1.0f, 4.0f,
                        1.0f, Animation.RELATIVE_TO_SELF, 1.0f,
                        Animation.RELATIVE_TO_SELF, 1.0f);
                isBottomRigth = false;
            }
            // 动画开始到结束的执行时间(1000 = 1 秒)
            bottomRightScaleAnimation.setDuration(2000);
            bottomRightScaleAnimation.setAnimationListener(new AnimationListener() {

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

                }

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

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    // TODO Auto-generated method stub
                    bottom_right.setEnabled(true);

                }
            });

            // 动画重复次数(-1 表示一直重复)
            // bottomRightScaleAnimation.setRepeatCount(-1);
            bottomRightScaleAnimation.setFillAfter(true);
            // 图片配置动画
            bottom_right.setAnimation(bottomRightScaleAnimation);

            // 动画开始
            bottomRightScaleAnimation.startNow();

            bottom_right.setEnabled(false);
        }

        private Animation topRightScaleAnimation;
        private boolean isTopRight = false;

        private void topRightScaleAnimation(View v) {
            if (!isTopRight) {
                topRightScaleAnimation = new ScaleAnimation(1.0f, 4.0f, 1.0f, 4.0f,
                        Animation.RELATIVE_TO_SELF, 1.0f,
                        Animation.RELATIVE_TO_SELF, 0.0f);
                isTopRight = true;

            } else {
                topRightScaleAnimation = new ScaleAnimation(4.0f, 1.0f, 4.0f, 1.0f,
                        Animation.RELATIVE_TO_SELF, 1.0f,
                        Animation.RELATIVE_TO_SELF, 0.0f);
                isTopRight = false;
            }
            topRightScaleAnimation.setDuration(2000);集装箱运费

            // 动画重复次数(-1 表示一直重复)
            // topRightScaleAnimation.setRepeatCount(-1);

            // 图片配置动画
            top_right.setAnimation(topRightScaleAnimation);
            topRightScaleAnimation.setAnimationListener(new AnimationListener() {

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

                }

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

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    top_right.setEnabled(true);

                }
            });

            // 动画开始
            topRightScaleAnimation.startNow();
            topRightScaleAnimation.setFillAfter(true);

            top_right.setEnabled(false);
        }

        private boolean isCenter = false;
        Animation centerScaleAnimation;

        private void centerScaleAnimation(View v) {
            if (!isCenter) {
                centerScaleAnimation = new ScaleAnimation(1.0f, 4.0f, 1.0f, 4.0f,
                        Animation.RELATIVE_TO_SELF, 0.5f,
                        Animation.RELATIVE_TO_SELF, 0.5f);
                isCenter = true;
            } else {
                centerScaleAnimation = new ScaleAnimation(4.0f, 1.0f, 4.0f, 1.0f,
                        Animation.RELATIVE_TO_SELF, 0.5f,
                        Animation.RELATIVE_TO_SELF, 0.5f);
                isCenter = false;
            }
            centerScaleAnimation.setDuration(2000);
            centerScaleAnimation.setFillAfter(true);
            // 动画重复次数(-1 表示一直重复)
            // centerScaleAnimation.setRepeatCount(-1);
            centerScaleAnimation.setAnimationListener(new AnimationListener() {

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

                }

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

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    center.setEnabled(true);
                    // TODO Auto-generated method stub

                }
            });
            // 图片配置动画喝咖啡的英文翻译,喝咖啡的造句
            center.setAnimation(centerScaleAnimation);

            // 动画开始
            centerScaleAnimation.startNow();

            center.setEnabled(false);
        }
    }
  • 相关阅读:
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale
    CodeForces 785B Anton and Classes
    CodeForces 785A Anton and Polyhedrons
    爱奇艺全国高校算法大赛初赛C
    爱奇艺全国高校算法大赛初赛B
    爱奇艺全国高校算法大赛初赛A
    EOJ 3265 七巧板
    EOJ 3256 拼音魔法
    EOJ 3262 黑心啤酒厂
  • 原文地址:https://www.cnblogs.com/sky7034/p/2086594.html
Copyright © 2020-2023  润新知