为了账号安全,请及时绑定邮箱和手机立即绑定

Android属性动画赏析

难度中级
时长 1小时20分
学习人数
综合评分9.80
125人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.7 逻辑清晰
  • 属性动画和传统的动画
    查看全部
  • qd
    查看全部
  • Interpolator
    查看全部
  • set.play()可以设置动画实现的先后顺序
    查看全部
  • Goolge中PropretyValuesHolder可以实现多个动画的实现,并且有一定的优化。
    查看全部
  • ObjectAnimator.ofFloat(imageView,"translationX",0F,200F).setDuraion(1000).start();
    查看全部
  • 属性动画 Animator 与传统动画 Animation Animation:系统一直不断地调用 onDraw()方法去重绘界面,来实现动画的效果。 Animator:属性动画,顾名思义,就是通过属性的 get/set 方法去真实地改变这个属性。 既然已经有了 Animation 动画框架,谷歌为什么还要创建 Animator 属性动画框架呢? 局限性:交互性较差,比较耗费CPU资源等。举个例子: 给一个ImageView设置点击事件(比如弹出一个Toast),并给ImageView设置位移动画(动画已设置了setFillAfter(true),使图片在位移之后不会复位),最后设置一个Button用于启动动画。启动动画之前,我们点击图片,会弹出一个Toast,这很正常。但启动动画之后,等图片离开了原来的位置,我们再点击这个图片,却毫无响应,去点击原来的位置,却弹出了Toast,这就是Animation的第一个局限:它只是重绘了动画,并不具有交互性,不能做有交互的动画效果。 第二个局限:由于Animation动画框架是通过不断去调用 onDraw()去重绘界面,所以会很耗费CPU资源。 其他局限:Animation仅仅具有位移、旋转、缩放、透明度这4种动画。虽然通过各种各样的组合,我们已经能够实现比较丰富的动画效果,但是相比一个属性来说,这还是远远不够的。
    查看全部
  • ObjectAnimator实现下拉列表
    查看全部
  • ObjectAnimator多组合
    查看全部
  • ObjectAnimator
    查看全部
  • ValueAnimator 是ObjectAnimator的父类 ObjectAnimator是对ValueAnimator的一个封装,为我们实现了一些属性的动画的封装 ValueAnimator是一个数值变化过程的封装,通过addUpdateListener(new ValueAnimator.AnimatorUpdateListener(){ @Override public void onAnimationUpdate(ValueAnimator animation){ Integer value=animation.getAnimatedValue();//变化的过程的值 } }) 监听数值变化的过程,实现一些不可告人的用途。
    查看全部
  • 为属性动画添加监听器: 直接使用ObjectAnimator对象的addListener()方法,传入一个Animator.AnimatorListener接口对象即可添加监听器。 谷歌提供了一个子类:AnimatorListenerAdapter,,使用该类的对象即可任意覆盖父类方法,节约代码量
    查看全部
  • AnimatorSet----属性动画集 可以使用AnimatorSet类存放多个ObjectAnimator对象 ObjectAnimator oA1=ObjectAnimator.ofFloat(imageView,"translationX",0F,200F); ObjectAnimator oA2=ObjectAnimator.ofFloat(imageView,"translationY",0F,200F); AnimatorSet set=new AnimatorSet(); set.playTogether(oA1,oA2);//将属性动画添加进集合中--该方法会同时播放 //set.playSequentially(oA1,oA2);//将属性动画添加进集合中--该方法顺序播放 //set.play(oA1).with(oA2);//第一个和第二个同时播放 //set.play(..).after(..);//第一个之后播放第二个 //通过以上几个方法可以灵活控制动画播放顺序 set.setDuration(1000); set.start();//播放
    查看全部
  • 谷歌提供了一个更好的方法实现刚刚的那种动画效果,效率更高一点 PropertyValuesHolder类-----字面意思是属性值的管理,持有者 代码示例: //先用这个类定义一些属性动画 PropertyValuesHolder pvh1=PropertyValuesHolder.ofFloat("rotation",0,360F); PropertyValuesHolder pvh1=PropertyValuesHolder.ofFloat("translationX",0,200F); //使用ObjectAnimator应用动画到控件中 ObjectAnimator.ofPropertyValuesHolder(imageView,pvh1,pvh2)//将定义的动画应用到imageView中 .setDuration(1000)//设置播放时间 .start();//开始播放
    查看全部
  • Animation动画的缺点:通过view的draw方法肉眼上改变动画,并没有真正的改变动画的属性,如果需要在播放动画之后进行一些交互操作则会出现一些问题 谷歌提供新的动画框架 属性动画 1.ObjectAnimator ImageView imageView=findViewById(....); ObjectAnimator.ofFloat(imageView,"translationX",0F,200F)//给imageView注册一个动画。第二个参数字符串指定改变的属性。可以是任何拥有get、set方法的属性 .setDuration(100)//设置播放时间 .start();//播放动画 这是一个最简单的属性动画 start是一个异步实现,所以多个以上代码会同时执行。
    查看全部

举报

0/150
提交
取消
老师告诉你能学到什么?
通过本课程,你将学到: 1、3.0之后新增的属性动画介绍 2、旧动画框架的局限性 3、实际演示属性动画的基本用法 4、介绍关于动画的高级技巧:插值器、估值器等 5、各种动画的使用场景

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!