Android 动画--使用Path来规划动画的轨迹

来源:互联网 发布:mac电脑顿号怎么打 编辑:程序博客网 时间:2024/05/16 15:47

使用Path来规划动画的轨迹

    public void testPathAnimator(){        final FrameLayout l = (FrameLayout) findViewById(R.id.root_view);        final ImageView imageView = new ImageView(this);        imageView.setImageResource(R.drawable.dot);        FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);        l.addView(imageView, param);        Path path = new Path();        path.moveTo(200, 200);        path.quadTo(800, 200, 800, 800);        PathInterpolator pathInterpolator = new PathInterpolator(0.33f,0f,0.12f,1f);        AnimatorSet animSet = new AnimatorSet();        animSet.addListener(new Animator.AnimatorListener() {            @Override            public void onAnimationStart(Animator animation) {            }            @Override            public void onAnimationEnd(Animator animation) {                l.removeView(imageView);            }            @Override            public void onAnimationCancel(Animator animation) {                l.removeView(imageView);            }            @Override            public void onAnimationRepeat(Animator animation) {            }        });        ObjectAnimator scalex = ObjectAnimator.ofFloat(imageView, View.SCALE_X, 1.0f, 0.3f);        ObjectAnimator scaley = ObjectAnimator.ofFloat(imageView, View.SCALE_Y, 1.0f, 0.3f);        ObjectAnimator traslateAnimator = ObjectAnimator.ofFloat(imageView, "x", "y", path);        animSet.playTogether(scalex, scaley, traslateAnimator);        animSet.setInterpolator(pathInterpolator);        animSet.setDuration(1500);        animSet.start();    }    }

效果

这里写图片描述

源码

github源码

介绍一个好用的视频转gif工具

GifCam

2 2
原创粉丝点击