没有合适的资源?快使用搜索试试~ 我知道了~
Android动画教程之属性动画详解
0 下载量 37 浏览量
2021-01-20
09:50:40
上传
评论
收藏 104KB PDF 举报
温馨提示
试读
5页
简介 Android 开发中,总是需要一些动画来优化用户的交互体验,提高用户满意度。因此,Google 为我们提供了一些用于处理动画效果的动画框架。Android 的动画框架分为两类: 传统动画(Animation):通过系统不断调用onDraw方法重绘界面,来达到动画的效果。 属性动画(Animator):通过操纵一个属性的get/set方法,真实地改变目标的某些属性。 传统动画框架的局限性 既然有了传统动画框架,Google 为什么还要创造一个属性动画框架呢? 我们下面举个例子来说明一下传统动画的局限性。 在布局中加入一个 ImageView 和一个 Button,点击 I
资源详情
资源评论
资源推荐
Android动画教程之属性动画详解动画教程之属性动画详解
简介简介
Android 开发中,总是需要一些动画来优化用户的交互体验,提高用户满意度。因此,Google 为我们提供了一些用于处理动
画效果的动画框架。Android 的动画框架分为两类:
传统动画(Animation):通过系统不断调用onDraw方法重绘界面,来达到动画的效果。
属性动画(Animator):通过操纵一个属性的get/set方法,真实地改变目标的某些属性。
传统动画框架的局限性传统动画框架的局限性
既然有了传统动画框架,Google 为什么还要创造一个属性动画框架呢?
我们下面举个例子来说明一下传统动画的局限性。
在布局中加入一个 ImageView 和一个 Button,点击 ImageView 后弹出一个 Toast,点击 Button 后使 ImageView 展现一个向
右平移的动画效果。
下面是使用传统动画实现的代码:
TranslateAnimation animation = new TranslateAnimation(0,200,0,0); // 平移动画x轴移动200,y轴不动
animation.setDuration(1000); // 动画时长
animation.setFillAfter(true); // 使动画结束后停留在结束的位置
mIvPicture.startAnimation(animation);
运行后,ImageView 确实进行了我们预期的平移的效果。可是当我们尝试点击 ImageView 当前的位置时,却没有 Toast 弹
出。我们再尝试去点击 ImageView 开始动画前的位置,却成功弹出了 Toast。
这就是传统动画很大的局限性:
它仅仅是重绘了控件,改变了其显示的位置。但真正事件响应的位置,却并没有发生改变。因此传统动画不适合做具有交互的
动画效果。仅仅能做一些显示的动画效果。
传统动画是不断通过 onDraw() 方法重绘界面,必然会十分耗费GPU资源。
传统动画所支持的动画类型少,仅有旋转、缩放、位移、透明度这四种动画效果。虽然通过组合可以实现丰富的效果,但相比
直接通过改变属性来实现的属性动画来说,还是有很大的局限性的。
因此,Google 为我们提供了一套全新的属性动画框架,来让我们实现更丰富的动画效果。
ObjectAnimator
ObjectAnimator 是属性动画中,最简单也最常用的一个对象。
实现实现 Animation 框架的功能框架的功能
平移
前文提到的使 ImageVIew 向右平移 200 像素的动画效果,使用属性动画只需要很简单的几句代码即可实现:
ObjectAnimator.ofFloat(mIvPicture,"translationX",0F,200F)
.setDuration(1000)
.start();
我们来分析一下这一句代码。我们调用了ofFloat代码,并传入三个参数。
第一个参数是动画需要操纵的目标,在这里是我们的 ImageView。
第二个参数是所需要操纵的目标所具备的属性名称。
第三个参数是这个动画变化的取值范围。
最后设置一下它的动画的属性,便可以 start 了。
这次我们再次点击 ImageView 目前的位置,成功地弹出了 Toast。这证实了属性动画是通过改变物体的属性来达到动画效果
的理论。
当我们需要改变 y 坐标时,只需要把 “translationX” 变为 “translationY” 即可。
其实 ,只要Google对一个对象的某个属性提供了get和set方法,我们就可以使用这个属性来实现动画效果。
其实我们还能用 X Y 两个属性实现之前的动画效果,那么对象属性中 X 的 Y 与 translationX translationY 有什么区别呢?
weixin_38589812
- 粉丝: 4
- 资源: 921
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0