• 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);
        }
    }
  • 相关阅读:
    Mina之session
    GNU C 、ANSI C、标准C、标准c++区别和联系
    SOCKET CLOSE_WAIT 搜集
    [转]二维数组和二级指针的传递问题
    Linux下C语言线程池的实现(1)
    MINA2 之日志配置
    mina里的死锁检测
    MINA2中的拆包组包的处理及一些方法
    void及void指针含义的深刻解析
    JS轻松实现单击文本框弹出选择日期
  • 原文地址:https://www.cnblogs.com/sky7034/p/2086594.html
Copyright © 2020-2023  润新知