Android动画
- View Animation 视图动画(Tween Animation 补间动画),只能用来设置View的动画
- Drawable Animation 帧动画(Frame动画),一帧帧地显示资源文件中的Drawable
- Property Animation 属性动画,在android3.0以上的系统才有。这动画可以设置给任何的Object,包括那些还没有渲染到屏幕的view.
为什么要引入属性动画?
- 补间动画只能够作用在View上的
- 补间动画只能够实现移动、缩放、旋转和淡入淡出这四种动画操作,不能改变View的背景等
- 补间动画只是改变了View的显示效果而已,而不会真正去改变View的属性
View Animation 补间动画
视图动画也叫补间动画,指在一个视图容器中执行一些变换。包含有:位置、大小、旋转、透明 补间动画。
一般通过xml实现,不建议是用android代码实现,因为代码实现的可读性比较差。
补间动画的相关类
- AlphaAnimation <alpha>放在res/anim/目录下 透明渐变动画效果
- RotateAnimation <rotate>放在res/anim/目录下 旋转转移动画效果
- ScaleAnimation <scale>放在res/anim/目录下 缩放动画效果
- TranslateAnimation <translate>放在res/anim/目录下 移动动画效果
- AnimationSet <set> 放在res/anim/目录下 持有动画的容器
补间动画之RotateAnimation使用
RotateAnimation动画的实现可以分类两种,一种是使用Java代码实现,另外一种使用xml。
使用java代码实现
RotateAnimation初始化代码片段
/** * init animation 1 */ private void initAnimation1() { /** * 0 - 359度旋转 * 相对于自身中心位置 */ RotateAnimation mRotateAnimation = new RotateAnimation(0, 359, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); //设置线性插值,可以解决旋转一圈后卡顿问题 mRotateAnimation.setInterpolator(new LinearInterpolator()); //设置旋转一圈时间 mRotateAnimation.setDuration(1000); //设置重复旋转次数, Animation.INFINITE表示无限次 mRotateAnimation.setRepeatCount(Animation.INFINITE); //设置旋转模式[restart 重新旋转; reverse 旋转一圈后反转] mRotateAnimation.setRepeatMode(Animation.RESTART); return; }
动画的启动和停止
//启动动画 imageView.startAnimation(mRotateAnimation); // 停止动画 imageView.clearAnimation();
使用xml实现
res/anim/anim_rotate.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:duration="1500" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:repeatCount="-1" android:repeatMode="reverse" android:toDegrees="359" /> <!-- duration : 一圈旋转时间 fromDegrees : 开始角度 toDegrees : 结束角度 pivotX : 旋转中心距离view的左顶点为50%距离 pivotY : 旋转中心距离view的左顶点为50%距离 repeatCount="-1":重复次数,-1为一直重复 repeatMode="restart":重复模式,restart从头开始重复 reverse 旋转完后反转旋转 --> </set>
/** * init animaton 2 */ private void initAnimation2() { //加载xml中的动画 Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate); //设置线性插值 mAnimation.setInterpolator(new LinearInterpolator()); return; }
参考文章
历史上的今天
暂无评论...
随机推荐
梁文道:在铁路上开餐
在日本坐火车旅行,其中一个乐趣是可以吃到美味的铁路便当。别小看这些并非现做因而盛放在保温器皿里的食物,它们可都经过精心配制,虽经水汽持续蒸腾,但风味别具。而且每个地方都有自己的特色,例如“明石便当”,一个小陶瓮里装着炖煮得软熟耐嚼的章鱼饭,光是外形就已经可爱了。讲究点的,还可以在各个车站百货公司里搜...
何其芳:预言
这一个心跳的日子终于来临!呵,你夜的叹息似的渐近的足音我听得清本是林叶和夜风私语,麋鹿驰过苔径的细碎的蹄声!告诉我,用你银铃的歌声告诉我,你是不是预言中的年轻的神?你一定来自那温郁的南方!告诉我那里的月色,那里的日光!告诉我春风是怎样吹开百花,燕子是怎样痴恋着绿杨?我将合眼睡在你...
北岛:回答
卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭,看吧,在那镀金的天空中,飘满了死者弯曲的倒影。 冰川纪过去了,为什么到处都是冰凌?好望角发现了,为什么死海里千帆相竞? 我来到这个世界上,只带着纸、绳索和身影,为了在审判之前,宣读那些被判决的声音。 ...
柴静:真相常流失于涕泪交加中
一美国有一个著名的白宫记者,叫海伦.托马斯,逼问过9任总统,进攻性极强,后来白宫特别在新闻厅给她专门设了把椅子,上面用小铜牌刻着她名字,又用她的名字命名了一个奖项,盛誉极隆。她八十多岁的时候在书里回忆自己职业生涯,曾经感叹美国新闻业的萧条,说“不知畏惧,不带好恶地去报道,美国的新闻人忘了吗?”...
Android中走马灯相关问题总结
前言Android开发中,应该都或多或少使用过TextView的走马灯(或跑马灯)。对于走马灯存在的问题,网上很多,我也在这里整(抄)理(袭)一下,方便自己查阅。跑马灯耗CPU可以BiuTextView替换,请访问------>《BiuTextView完美替代TextView进行跑马...
Android Studio常用快捷键总结
推荐使用 读书导航 极客导航 :125啦极客导航(http://www.biumall.com/jike.html)PS:字母不区分大小写1、代码自动补全 在Settings中搜索“Code Completion” [Files/Settings/Editor/General...