Android动画的使用总结
1、补间动画(透明渐变、平移、旋转、缩放、组合)
方法一:通过xml文件设置
1-1:创建:res/anim
1-2:java代码写调用
Animation a = AnimationUtils.loadAnimation(this, R.anim.alpha);
img.startAnimation(a);
1-3:设置动画
1-3-1:透明渐变:alpha(透明度设置【0-1】)
开始的透明度:android:fromAlpha="0"
结束的透明度 : android:toAlpha="1"
花费的时间:毫秒android:duration="1000"
1-3-2:平移:translate
起始点的x、y的坐标值:android:fromXDelta="0"、android:fromYDelta="0"
结束点的x、y的坐标值:android:toXDelta="200"、android:toYDelta="200"
花费的时间:毫秒
保持最后的移动状态:android:fillAfter="true"
重复次数:android:repeatCount="3"
重复的效果:restart,reverse:android:repeatMode="restart"
1-3-3:旋转:rotate
起始角度:android:fromDegrees="0"
旋转角度:【-,+】android:toDegrees="-720"
花费的时间:毫秒
中心点:
1.固定值:android:pivotX="500"、android:pivotY="500"
2.相对自身的设置:android:pivotX="50%"、android:pivotY="50%"
3.相对父控件的设置:android:pivotX="50%p"、android:pivotY="50%p"(p代表parent)
1-3-4:缩放:scale
起始x,y的倍数:android:fromXScale="0"、android:fromYScale="0"
结束x,y的倍数:android:toXScale="2"、android:toYScale="2"
花费的时间:毫秒
1-3-5:组合: set
在每一个动画中添加startOffset,然后设置它们的先后顺序
android:startOffset="3000"
方法二:通过代码设置
AnimationSet set = new AnimationSet(true);
直接写相应的属于性
AlphaAnimation alpha = new AlphaAnimation(1f, 0f);
alpha.setDuration(1000);
set.addAnimation(alpha);
iV.startAnimation(set);
或者:
TranslateAnimation m = new TranslateAnimation(fromXType,fromXValue,toXType,toXValue,fromYType,fromYValue,toYType,toYValue);
fromXType:绝对的动画类型(1或是2)
m.setDuration(1500);
set.addAnimation(m);
set.setStartOffset(800);
set.setFillAfter(true);
image.startAnimation(anim1);
也可以根据相应的属性写不同的代码
AlphaAnimation alpha = new AlphaAnimation(0, 0.8f);
alpha.setDuration(1000);
img.startAnimation(alpha);
2、帧动画
2-1:新建文件夹darwable
2-2:新建文件XX.xml,并把所有的图片放进去
<item android:drawable="@drawable/run01" android:duration="100" />
……
2-3:在xml文件的ImageView控件中设置背景为XX.xml
android:background="@drawable/frame"
2-4:用AnimationDrawable控制它
AnimationDrawable ad = (AnimationDrawable) frameImage.getBackground();
3、属性动画
3-1:透明渐变:alpha(透明度设置【0-1】)
ObjectAnimator.offFloat(img,"alpha",0.1f,1.0f).setDuration(2000).start();
3-2:平移:translate
ObjectAnimator.ofFloat(img,"translationX",0f,200f).setDuration(2000).start();
3-3:旋转:rotate
ObjectAnimator.ofFloat(img,"rotationX",0f,720f).setDuration(2000).start();
3-4:缩放:scale
//上面的平移想要达到X轴和Y轴同时平移也可以这样写
ObjectAnimator anim1 = ObjectAnimator.ofFloat(img, "scaleX", 1.0f, 2f);
anim1.setDuration(1000);
anim1.start();
ObjectAnimator.ofFloat(img, "scaleY", 1.0f, 2f).setDuration(2000).start();
3-5:组合: set
AnimatorSet as = new AnimatorSet();
ObjectAnimator oa1 = ObjectAnimator.ofFloat(img, "scaleX", 1.0f, 2f);
ObjectAnimator oa2 = ObjectAnimator.ofFloat(img,"rotateX",0f,720f);
ObjectAnimator oa3 = ObjectAnimator.ofFloat(img,"alpha",0f,0.7f);
as.setDuration(2000).setTarget(img);
as.play(oa1).with(oa2).after(oa3);
as.start();
4、acitivy跳转的动画(多重补间动画循环)
4-1:新建两个动画
4-2:在中转之后设置它的使用
overridePendingTransition(R.anim.face_in, R.anim.face_out);
5、布局动画。
在LinearLayout中添加:
android:animateLayoutChanges="true"
Android动画的使用总结的更多相关文章
- Android动画效果之自定义ViewGroup添加布局动画
前言: 前面几篇文章介绍了补间动画.逐帧动画.属性动画,大部分都是针对View来实现的动画,那么该如何为了一个ViewGroup添加动画呢?今天结合自定义ViewGroup来学习一下布局动画.本文将通 ...
- Android动画效果之Property Animation进阶(属性动画)
前言: 前面初步认识了Android的Property Animation(属性动画)Android动画效果之初识Property Animation(属性动画)(三),并且利用属性动画简单了补间动画 ...
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- Android动画效果之Frame Animation(逐帧动画)
前言: 上一篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画),今天来总结下Android的另外一种动画Frame ...
- Android动画效果之Tween Animation(补间动画)
前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...
- Android动画
[浅谈Android动画] 总共四种:Tween Animation变换动画.Frame Animation帧动画 Layout Animation布局动画.Property Animation 属性 ...
- Android动画学习(二)——Tween Animation
前两天写过一篇Android动画学习的概述,大致的划分了下Android Animation的主要分类,没有看过的同学请移步:Android动画学习(一)——Android动画系统框架简介.今天接着来 ...
- Android动画学习(一)——Android动画系统框架简介
2015-11-09补充:Drawable Animation极有可能是Frame Animation 这几天在找工作,面试的时候被问到了Android动画,之前完全没接触过这部分,直接给懵了,当然其 ...
- Android动画的理解
基础知识 在我们开始讲Android动画这个知识点之前,我们了解下相应的基础知识点. Shape篇 一般用Shape定义的XML文件是存放在Drawable目录下,广泛应用于在Button.TextV ...
- Android动画之淡入淡出
为了更好的说明Android动画的淡入淡出效果,这里以一个场景为例: 界面上有两个View 控件,两个View交替显示,当一个View淡入显示,另一个View淡出不可见. 我们把当前要显示的View叫 ...
随机推荐
- max-min fairness 最大最小公平算法
我们经常面临给一组用户划分稀有资源的问题,他们都享有等价的权利来获取资源,但是其中一些用户实际上只需要比其他用户少的资源.那么我们如何来分配资源呢?一种在实际中广泛使用的分享技术称作“最大最小公平分享 ...
- Java nio 笔记:系统IO、缓冲区、流IO、socket通道
一.Java IO 和 系统 IO 不匹配 在大多数情况下,Java 应用程序并非真的受着 I/O 的束缚.操作系统并非不能快速传送数据,让 Java 有事可做:相反,是 JVM 自身在 I/O 方面 ...
- PostgreSQL 三节点集群故障模拟及恢复
PostgreSQL 三节点集群故障模拟及恢复 (postgreSQL9.5.1) 正常状态: 10.2.208.10:node1:master 10.2.208.11:node2:standby1同 ...
- PostgreSQL Replication之第十二章 与Postgres-XC一起工作(6)
12.6 添加节点 Postgres-XC允许您在那个过程中的任何一个时间点添加新的服务器到计划中.所有您需要做的是按照我们之前演示的设置一个节点,并在 控制器上调用CREATE NODE.然后,该系 ...
- 20145207《Java程序设计》第三周学习总结
前言 24号回来的,书看的差不多了,博客一直没写,求老师原谅呀!!!!!哈哈哈哈.博客我从今天开始补,对着书,一天最多能弄个两篇毕竟写这个东西挺费心思德,当然我做事慢也有关系.但是我会尽快的.老实讲, ...
- Codeforces Round #325 (Div. 1) D. Lizard Era: Beginning
折半搜索,先搜索一半的数字,记录第一个人的值,第二个人.第三个人和第一个人的差值,开个map哈希存一下,然后另一半搜完直接根据差值查找前一半的答案. 代码 #include<cstdio> ...
- 省市区三级联动(二)JS部分简单版
通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...
- Silverlight ModelView中调用UI进程
Silverlihgt: Deployment.Current.Dispatcher.BeginInvoke wpf: App.Current.Dispatcher.Invoke
- [OrangePi] Building the system
You can try to build Debian/Ubuntu for OrangePI yourself. Clone my GitHub repository. You will need ...
- 【海岛帝国系列赛】No.7 海岛帝国:神圣之日
50237242海岛帝国:神圣之日 [试题描述] 战争持续九个月了.“购物券”WHT的军队还在跟恐怖分子僵持着.WHT和LJX已经向“公务员”告急,情况不宜乐观.YSF为守护帝国决定打开“够累 的”星 ...