关于peoperty animation的理解


关于ValueAnimation的使用:



ValueAnimator animation = ValueAnimator.ofObject(//此处的ofObject表示建立一个自定义TypeEvaluator的 ValueAnimator,除此之外还有ofFloat等,分别表示建立一个含FloatEvaluator等的ValueAnimator,
                new TypeEvaluator<Integer>() {
                    public Integer evaluate(float fraction, Integer startValue,
                            Integer endValue) {
                        // TODO Auto-generated method stub
                        Log.i("orignal-fraction", String.valueOf(fraction));
                        Log.i("orignal-startvalue", String.valueOf(startValue));
                        Log.i("orignal-startvalue", String.valueOf(endValue));
                        return 20;
                    }//fraction是TimeInterpolator的返回值,本函数的返回值为animation.getAnimatedValue()所获取的值,此处本代码fraction为0.2
                }, 12, 23);//此处的12,23用来表示属性的上下限,分别为上TypeEvaluator的参数的startValue和endValue
        animation.setDuration(5000);
        ValueAnimator.setFrameDelay(500);
        animation.setInterpolator(new TimeInterpolator() {
            public float getInterpolation(float input) {
                // TODO Auto-generated method stub
                Log.i("myinterpolation-input", String.valueOf(input));
                return 0.2f;
            }
        });//input参数是已逝去的时间占总时间的比例若直接返回该值,则本TimeInterpolator与linerInterpolator效果一样
        animation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            public void onAnimationUpdate(ValueAnimator animation) {
                // TODO Auto-generated method stub
                Log.i("update",
                        ((Integer) animation.getAnimatedValue()).toString());
            }
        });//本环节是直线animation效果的关键环节,可在本linstener中加入要改变的属性,并与animation.getAnimatedValue()所得的值联系起来
        animation.start();

代码运行部分结果:

160044701.jpg



本文出自 “Rainlee的随笔记” 博客,请务必保留此出处http://rainlee.blog.51cto.com/7389753/1297096

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值