Android开发之补间动画、XML方式定义补间动画
四种补间动画:
1、透明;
2、缩放;
3、位移;
4、旋转;
//点击按钮 实现iv 透明的效果 动画
public void click1(View v) {
//1.0意味着着完全不透明 0.0意味着完全透明
AlphaAnimation aa = new AlphaAnimation(1.0f, 0.0f);
aa.setDuration(2000); //设置动画执行的时间
aa.setRepeatCount(1); //设置重复的次数
aa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
//iv开始执行动画
iv.startAnimation(aa);
}
//点击按钮 实现iv 执行一个旋转 动画
public void click2(View v) {
//fromDegrees 开始角度 toDegrees 结束角度
// RotateAnimation ra = new RotateAnimation(0, 360);
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000); //设置动画执行的时间
ra.setRepeatCount(1); //设置重复的次数
ra.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
//iv开始执行动画
iv.startAnimation(ra);
}
//点击按钮进行一个缩放动画
public void click3(View v) {
ScaleAnimation sa = new ScaleAnimation(1.0f,2.0f, 1.0f, 2.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000); //设置动画执行的时间
sa.setRepeatCount(1); //设置重复的次数
sa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
//iv开始执行动画
iv.startAnimation(sa);
}
//位移动画
public void click4(View v){
TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0.2f);
ta.setDuration(2000); //设置动画执行的时间
ta.setFillAfter(true);//当动画结束后 动画停留在结束位置
//开始动画
iv.startAnimation(ta);
}
//动画一起飞
public void click5(View v){
AnimationSet set = new AnimationSet(false);
//透明动画
AlphaAnimation aa = new AlphaAnimation(1.0f, 0.0f);
aa.setDuration(2000); //设置动画执行的时间
aa.setRepeatCount(1); //设置重复的次数
aa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
//旋转动画
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000); //设置动画执行的时间
ra.setRepeatCount(1); //设置重复的次数
ra.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
//缩放
ScaleAnimation sa = new ScaleAnimation(1.0f,2.0f, 1.0f, 2.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000); //设置动画执行的时间
sa.setRepeatCount(1); //设置重复的次数
sa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0.2f);
ta.setDuration(2000); //设置动画执行的时间
ta.setFillAfter(true);//当动画结束后 动画停留在结束位置
//添加动画
set.addAnimation(aa);
set.addAnimation(ra);
set.addAnimation(sa);
set.addAnimation(ta);
//最后一步 要记得 执行动画
iv.startAnimation(set);
}
几个属性介绍:
1、Duration:设置动画执行的时间;
2、RepeatCount:动画的重复次数,如果要无限次播放,填写一个小于0的数,一般写-1;
3、fillAfter:动画结束之后是否保持动画的最终状态;true,表示保持动画的最终状态
4、fillBefore:动画结束之后是否保持动画开始前的状态;true,表示恢复到动画开始前的状态
5、startOffset:动画的延迟时长,单位是毫秒
6、RepeatMode:动画的执行模式:
- reverse:动画是从一开始的1.0渐变成0.3,然后在从0.3渐变为1.0,重复往返
- restart:冻哈是从一开始的1.0渐变成0.3,然后图片从0.3突变为1.0,然后在渐变成0.3,重复往返,
XML定义补间动画:
透明:
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="200"
android:repeatMode="reverse"
android:repeatCount="2">
</alpha>
旋转:
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="1"
android:repeatMode="reverse"
android:duration="2000"
xmlns:android="http://schemas.android.com/apk/res/android">
</rotate>
缩放:
<scale
android:fromXScale="1.0"
android:toXScale="2.0"
android:fromYScale="1.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:repeatMode="reverse"
android:repeatCount="1"
android:duration="2000"
xmlns:android="http://schemas.android.com/apk/res/android">
</scale>
位移:
<translate
android:fromXDelta="0%p"
android:toXDelta="0%p"
android:fromYDelta="0%p"
android:toYDelta="20%p"
android:fillAfter="true"
android:duration="2000"
xmlns:android="http://schemas.android.com/apk/res/android">
</translate>
实现XML动画:
public void click1(View v) {
Animation aa = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.alpha);
//iv开始执行动画
iv.startAnimation(aa);
}
Android开发之补间动画、XML方式定义补间动画的更多相关文章
- 使用xml方式定义补间动画
在res下创建一个目录 anim目录 public class MainActivity extends Activity { private ImageView iv; @Override prot ...
- Android开发——弹性滑动的两种实现方式
0. 前言 欢迎转载,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52538723 我们在Android开发--View滑动的三 ...
- Android开发学习---使用XmlPullParser解析xml文件
Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...
- Android开发之使用DefaultHandler处理XML数据
一.定义规则 XML数据结构定义 请记住上面的定义,后面我会用“标签开始”.“文本”.“标签结束”表示SAX正在处理哪部分XML数据 事件模型 为什么这里我要谈到这个,因为SAX处理XML数据是采用事 ...
- Spring的AOP开发(基于AspectJ的XML方式)
Spring的AOP的简介: AOP思想最早是由AOP联盟组织提出的.Spring是使用这种思想最好的框架 Spring的AOP有自己实现的方式(非常繁琐). Aspect是一个AOP的框架, Spr ...
- Android开发更新UI的几种方式
1.runOnUiThread 2.handler post 3.handler sendmessage 4.view post xml布局文件: <RelativeLayout xmlns:a ...
- Android开发 - 更"聪明"的申请权限方式
在Android6.0以后,很多权限需要动态申请,只有在用户点同意后,我们才能使用对应API,因此,正确申请权限就显得很重要. 常用方式 通常我们使用这种方式来判断权限状态: private stat ...
- 【Android开发】Android6.0请求权限方式
记录一下最普通的动态请求权限的方法: private int requestCode == 123; //判断当前系统的版本 if(Build.VERSION.SDK_INT >= 23){ i ...
- Android开发 ---基本UI组件6 :只定义一个listView组件,然后通过BaseAdapter适配器根据数据的多少自行添加多个ListView显示数据
效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...
随机推荐
- CentOS系统在不重启的情况下为虚拟机添加新硬盘
一.概述 用过虚拟机的都知道,如果在系统运行的时候去给虚拟机添加一块新设备,比如说硬盘,系统是读取不到这个新硬盘的,因为系统在启动的时候会去检测硬件设备.但是我们也可能会遇到这样的情况,比如正在运行比 ...
- UVa 297 Quadtrees -SilverN
A quadtree is a representation format used to encode images. The fundamental idea behind the quadtre ...
- UVA 11817 Tunnelling the Earth --球面距离公式
题意: 给出两点的经纬度,求两点的球面距离与直线距离之差. 解法: 我们先算出球面距离,然后可以根据球面距离算出直线距离. 球面距离公式: R*acos(sin(W1)*sin(W2)+cos(W1) ...
- CF149D. Coloring Brackets[区间DP !]
题意:给括号匹配涂色,红色蓝色或不涂,要求见原题,求方案数 区间DP 用栈先处理匹配 f[i][j][0/1/2][0/1/2]表示i到ji涂色和j涂色的方案数 l和r匹配的话,转移到(l+1,r-1 ...
- 在ios android设备上使用 Protobuf (使用dll方式)
http://game.ceeger.com/forum/read.php?tid=13479 如果你的工程可以以.Net 2.0 subset模式运行,请看这个帖子中的方法. 地址:http://g ...
- 代码管理工具之git的学习
1.代码管理工具git的学习 http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 2.github的使用帮助 https:// ...
- UIDate(时间)
1.时间与时间的比较 ["时间1" timeIntervalSinceDate:"时间2"] >= 0;
- 在ASP.NET中如何运行后台任务
from:https://blogs.msdn.microsoft.com/scott_hanselman/2014/12/21/asp-net/ [原文发表地址] How to run Backgr ...
- Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
在远程连接mysql的时候,连接不上,出现如下报错:Lost connection to MySQL server at 'waiting for initial communication pack ...
- ES6 WeakSet数据结构 与Set十分相似
它与Set十分相似,对象的值也不能是重复的,与Set不同点: .WeakSet成员只能够是对象. .作为WeakSet成员的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说, ...