Android属性动画初识

一直对各种开源控件上绚丽的动画效果很是羡慕,但只停留在拿来主义上,并不能真正去学习到什么。所以特意找了郭神的三篇属性动画博文认真看了一遍,不得不说,郭神真是厉害,讲的太好了。
郭神Blog:http://blog.csdn.net/guolin_blog
看完的同时,随便手打了例子。

my.gif

<pre>
public class MyAnimView extends View
{
private Paint mPaint;
private PointModel pointModel;
private String color;

public MyAnimView(Context context, AttributeSet attrs)
{
    super(context, attrs);
    init();
}

public MyAnimView(Context context)
{
    this(context, null);
}

@Override
protected void onDraw(Canvas canvas)
{
    super.onDraw(canvas);
    if (pointModel == null)
    {
        pointModel = new PointModel();
        pointModel.setX(50);
        pointModel.setY(50);
        drawCircle(canvas);
        sartAnimation();
    } else
    {
        drawCircle(canvas);
    }
}

public String getColor()
{
    return color;
}

public void setColor(String color)
{
    this.color = color;
    mPaint.setColor(Color.parseColor(color));
    invalidate();
}

private void drawCircle(Canvas canvas)
{
    canvas.drawCircle(pointModel.getX(), pointModel.getY(), 50, mPaint);
}

public void sartAnimation()
{
    PointModel start = new PointModel();
    start.setX(50);
    start.setY(50);
    PointModel end = new PointModel();
    end.setX(getWidth() - 50);
    end.setY(getHeight() - 50);
    ValueAnimator valueAnimator = ValueAnimator.ofObject(new PointEvaluator(), start, end);
    valueAnimator.setDuration(5000);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
    {
        @Override
        public void onAnimationUpdate(ValueAnimator animation)
        {
            pointModel = (PointModel) animation.getAnimatedValue();
            invalidate();
        }
    });
    ObjectAnimator objectAnimator = ObjectAnimator.ofObject(this,"color",new ColorEvaluator(),"#0000FF", "#FF0000");
    objectAnimator.setDuration(5000);
    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.play(valueAnimator).with(objectAnimator);
    animatorSet.setDuration(5000);
    animatorSet.start();
}

private void init()
{
    mPaint = new Paint();
    mPaint.setColor(0xFF40A5DB);
}

</code>
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,843评论 25 709
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 11,314评论 12 197
  • 思考:一元关系,是6个月婴儿时期的表现,他们的眼中只有妈妈,认为妈妈是他的,谁都不能与他抢,这个时期称为“剥削时期...
    杨雪雪阅读 137评论 0 0
  • 某天下班回来,妈妈开始向我投诉了,你儿子呀,好狡猾的,叫他给我吃东西,故意装作给我吃,待我以为是真的时候,就收起来...
    珊珊0329阅读 273评论 0 0