专栏首页Android-薛之涛Android-Animation 总结(二(Valueanimator))

Android-Animation 总结(二(Valueanimator))

          之前讲了帧动画和补间动画,今天我们来说一说重头戏---Android Animation之属性动画(property animation)。

一 :是什么,属性动画是什么?

           属性动画是 android团队在android 3.0 引入Property animation。

           Property animation的主要两个类:ValueAnimation 和 ObjectAnimation ,当然ObjectAnimation是继承自ValueAnimation的。

            ValueAnimator是整个属性动画机制当中最核心的一个类,它的内部使用一种时间循环的机制来计算值与值之间的动画过渡,我们只要给它设置初始值和结束值以及一些常用属性比如:循环,持续时间,播放模式,监听(alueAnimator.AnimatorUpdateListener)最后在调用start方法即可。其他属性,自行百度.

              ObjectAnimator则就不同了,它是可以直接对任意对象的任意属性进行动画操作的,比如说View的scale属性。

二:为什么,什么么要引入?

       我们来对比一下之前讲到过的补间动画:

与补间动画相比的优缺点:

  1,补间动画只能对View进行平移,渐变,缩放,旋转的操作,如:TextView ,Button等,不能对某个对象。

   2,补间动画扩展性差,比如监听view移动,动态改变背景色及改变显示内容等操作

     3.最致命的一点:只是改变了View的显示效果而已,而不会真正去改变View的属性。经常遇到的比如使用平移效果(translate)使ImageView移动从屏幕左边A点移动到右边B点,给ImageView设置监听,点击B点的ImageView并没有反应,点击A点不存在ImageView的空白区域竟然响应了点击。

三:怎么用?

我们先来实现ValueAnimator吧。

    - -------------ValueAnimator-----------------

  先说明一下:valueAnimator:这个动画是针对属性的值进行动画的 ,不会对UI造成改变,不能直接实现动画效果。需要通过对动画的监听去做一些操作,在监听中将这个值设置给对应的属性,属性才会改变。

那么既然看不到UI效果,我们怎么看动画有么有运行呢?别急,不是有监听嘛?

我们可以监听其输出内容。ok,开始。。。。。

效果:

我们平时在开发中可以根据属性值的变化做相应的操作。

 不知道大家有没有注意看ValueAnimator.ofFloat(1f,30f),它其实还可以写成ValueAnimator.ofFloat(1f,30f,15f)等。从1f到30f再从30f到15f.

还有ValueAnimator.ofInt().放的是整型。

      ValueAnimator.onArgb();可以改变背景色,代码如下,

 简书不上传效果图只支持优酷和腾讯视频,腾讯太坑了。,大家只能看代码了。

还有监听,我们刚才是addUpdateListener设置ValueAnimator.AnimatorUpdateListener来对动画的值进行了监听。

还有一个监听是通过valueAnimator.addListener设置Animator.AnimatorListener监听。

这个监听提供了start,end,cancel,repeat的监听:分别是开始,结束,取消,重复,感兴趣小伙伴自己尝试一下。

最后在该大家推荐推荐几个常用的属性:

对了,发现一个小问题,就是ofFloat的时候出现了打印重复,也不知道是什么原因,知道的小伙伴可以讲解一下。

还有ObjectAnimator,我们下次讲和ValueAnimator组合使用,实现组合动画。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android-Animation 总结(一)

    鉴于今天是劳动节,鼓励自己整理一下android相关的知识,祝所有劳动者节日快乐。

    android_薛之涛
  • Android-Retrofit简介

    上一篇文章讲了RxJava,这一篇当然就该讲Retrofit了,参考资料: https://blog.csdn.net/gumufuyun/article/d...

    android_薛之涛
  • Android-Animation 总结(三(ObjectAnimator))

    上一篇我们讲了ValueAnimator,今天我们讲一下ObjectAnimator,首先我在之前讲过,它继承自ValueAnimator,ValueAnima...

    android_薛之涛
  • Android 属性动画详解,属性动画基本用法

    Hello,大家好,今天又来装逼了,装逼也上瘾啊,最近公司不是特别忙,我想这也就是我出来装逼的最好时机吧!额,,哈哈,进入正题。如有疑问欢迎留言,如有谬误欢迎批...

    非著名程序员
  • 安卓开发_浅谈Android动画(四)

    听着music睡
  • Android属性动画完全解析(上),初识属性动画的基本用法

    在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame...

    用户1158055
  • CSS旋转动画和动画的拼接

    linear是匀速运动,还可以设置为: ease 默认。动画以低速开始,然后加快,在结束前变慢。 ease-in 动画以低速开始。 测...

    liulun
  • bootstrap select 多选,最多选择两项 常用

    用户5760343
  • 如何实现同等间隙的卡片布局

    在列表展示中,经常会使用卡片的内容展示形式,为了美观,常常要求各卡片间的间隙是一致的。

    书童小二
  • CSS3 animation动画 - 转风车、loding加载、人物走路等示例

    1、@keyframes 定义关键帧动画 2、animation-name 动画名称 3、animation-duration 动画时间 4、animat...

    Devops海洋的渔夫

扫码关注云+社区

领取腾讯云代金券