Android中的动画效果
动画的种类
透明动画alphaAnimation
在代码中配置动画:
findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
alphaAnimation.setDuration(1000);
view.startAnimation(alphaAnimation);
}
});
在xml中配置动画:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0"
android:toAlpha="1"
android:duration="1000"> </alpha>
findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.aa));
}
});
旋转动画RoateAnimation
在代码中配置动画:
findViewById(R.id.btnRotateMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RotateAnimation rotateAnimation = new RotateAnimation(0, 360);
//相对于自身旋转
//RotateAnimation rotateAnimation = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setDuration(1000); view.startAnimation(rotateAnimation); } });
在xml中配置动画:
<?xml version="1.0" encoding="utf-8"?>
<rotate android:fromDegrees="0"
android:toDegrees="1"
android:duration="1000"
android:pivotX="50%"
android:pivotY="50%"
xmlns:android="http://schemas.android.com/apk/res/android"> </rotate>
view.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.ra));
移动动画translateAnimation
在代码中配置动画:
findViewById(R.id.btnTranslateMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//refer to self position
TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);
ta.setDuration(1000);
view.startAnimation(ta);
}
});
在xml中配置动画:
<?xml version="1.0" encoding="utf-8"?>
<translate android:fromXDelta="0"
android:toXDelta="200"
android:fromYDelta="0"
android:toYDelta="200"
android:duration="1000"
xmlns:android="http://schemas.android.com/apk/res/android"> </translate>
view.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.ta));
缩放动画
在代码中配置动画:
findViewById(R.id.btnScaleMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1);
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(1000);
view.startAnimation(sa);
}
});
在xml中配置动画:
<scale android:fromXScale="0"
android:toXScale="1"
android:fromYScale="0"
android:toYScale="1"
android:duration="1000"
android:pivotX="50%"
android:pivotY="50%"
xmlns:android="http://schemas.android.com/apk/res/android"> </scale>
view.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.sa));
动画混合
在代码中配置动画:
findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AnimationSet as = new AnimationSet(true);
as.setDuration(1000);
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(1000);
as.addAnimation(aa);
TranslateAnimation ta = new TranslateAnimation(200, 0 , 200, 0);
ta.setDuration(1000);
as.addAnimation(ta);
view.startAnimation(as);
}
});
在xml中配置动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true"
android:duration="1000">
<alpha
android:fromAlpha="0"
android:toAlpha="1"/>
<translate
android:fromYDelta="200"
android:toYDelta="0"
android:fromXDelta="200"
android:toXDelta="0"/>
</set>
动画效果侦听
Animation a = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.sa);
a.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Toast.makeText(MainActivity.this, "Animation Start", Toast.LENGTH_SHORT).show();
} @Override
public void onAnimationEnd(Animation animation) {
Toast.makeText(MainActivity.this, "Animation End", Toast.LENGTH_SHORT).show();
} @Override
public void onAnimationRepeat(Animation animation) { }
});
view.startAnimation(a);
自定义动画效果
自定义动画需要自定义一个类继承自Animation, 并重写applyTransformation. 在applyTransformation中,第一个参数interpolatedTime是一个0到1的变化范围。
- 如果调用Transform.setAlpha(interpolatedTime)就是一个透明的AlphaAnimation效果。
- 如果要设置移位的动画,可以通过getmetrix:
t.getMatrix().setTranslate(200*interpolatedTime, 200);
每一个动画执行前都会执行initalize。
Android中的动画效果的更多相关文章
- Android中矢量动画
Android中矢量动画 Android中用<path> 标签来创建SVG,就好比控制着一支画笔,从一点到一点,动一条线. <path> 标签 支持一下属性 M = (Mx, ...
- 初识android中的动画
动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍.掌握基本的动画效果在成熟的软件开发中不可或缺.除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对 ...
- Android(java)学习笔记200:Android中View动画之 XML实现 和 代码实现
1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...
- Android中的动画
Android中的动画分为: 1.逐帧动画(Frame Animation): 把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...
- Android中的动画具体解释系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...
- Android(java)学习笔记143:Android中View动画之 XML实现 和 代码实现
1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...
- Android中的动画详解系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 如 ...
- Android中的动画机制
1 逐帧动画 逐帧动画 就是一系列的图片按照一定的顺序展示的过程. 逐帧动画很简单, 只需要在drawable中或者anim中定义一个Animation-list 其中包含多个it ...
- Android中的动画学习总结
android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...
随机推荐
- Hibernate映射文件创建和删除触发器,存储过程等数据库对象
创建表,触发器,和存储过程等数据库对象,这里一定要用create 在hibernate.cfg.xml文件中
- 新课程开始的第二天,HTML基础制作
天正式开始学习HTML的基础制作,有简单的指令开始入手. 第一天的学习,因为基础,所以觉得还算简单,主要是对网页背景.图片.文字.表格等的编辑,和一部分链接的使用. 由下面的的一个事例,通过所学的简单 ...
- 自学 web 前端人怎么找工作?
1,你做过的项目可以体现你的价值.2,你的个人博客可以反映你的思考.3,你的GitHub页面可以展示你的项目.4,你项目中的代码可以看出你编程的风格.1,2,3,4之间有交集.当你能证明,你能创造的价 ...
- 如何隐藏winform中报表设计器中的按钮
https://www.devexpress.com/Support/Center/Question/Details/T246117 DesignMdiController.SetCommandVis ...
- codeigniter nginx配置
转载:http://www.nginx.cn/1134.html server{ listen 80; server_name www.ci.oa.com; access_log /usr/local ...
- Strus2学习:基础(一)
Strus2基础: Sturs2起源以及背景: 在起源很早(2002年左右)的 strus1 和 webWork 基础上进行扩展,并且兼容这两大框架!总之很好用啦,随着学习的深入,应该会有更好的诠释的 ...
- JS中判断 !="" 或者 !=null 失效
var id; //... if (!id&& typeof (id) != "undefined" && id!= 0) { //id为null ...
- Git撤销操作
撤销操作的相关文章 http://www.linuxidc.com/Linux/2015-06/119350.htm ——撤销已经修改,但是还没有添加到暂存区的操作: 解决方案: 有两种情形: ...
- Android Fragment 深度解析
1.Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应 ...
- ROS学习笔记(八)——ROSTOPIC
NEW 1 $ roscore NEW 2 $ rosrun turtlesim turtlesim_node NEW 3 $ rosrun turtlesim turtle_teleop_key N ...