Android 动画的简单使用——视图动画
来源:互联网 发布:nginx绑定域名 编辑:程序博客网 时间:2024/06/08 06:02
本博文为《Android群英传》阅读笔记,供个人备忘用。
一、视图动画概述
视图动画使用简单,效果丰富,它提供了AlphaAnimation、RotateAnimation、TranslateAni-mation、ScaleAnimation四种动画方式,并提供了AnimationSet动画集合,混合使用多种动画。在Android 3.0之前,视图动画一家独大,但随着Android 3.0之后属性动画框架的推出,它的风光就大不如前了。相比属性动画,视图动画的一个非常大的缺陷就是不具备交互性,当某个元素发生视图动画后,其响应事件的位置还依然在动画前的地方,所以视图动画只能做普通的动画效果,避免交互的发生。但是它的优点也非常明显,即效率比较高且使用方便。
视图动画使用非常简单,不仅可以通过XML文件来描述一个动画过程,同样也可以使用代码来控制整个动画过程。
下面这个实例就列举了一些简单的视图动画使用方法。
二、视图动画实例(使用方法:纯Java代码)
1、透明度动画
为视图增加透明度的变换动画
//0-1由透明变成不透明 AlphaAnimation aa = new AlphaAnimation(0, 1); //动画持续时间 aa.setDuration(3000); view.startAnimation(aa);
效果图
2、旋转动画
为视图增加旋转的变换动画。
RotateAnimation ra = new RotateAnimation(0, 360); ra.setDuration(3000); view.startAnimation(ra);
RotateAnimation ra = new RotateAnimation(0, 360, 200, 200); ra.setDuration(3000); view.startAnimation(ra);
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(3000); view.startAnimation(ra);
1.RotateAnimation(fromDegrees, toDegrees),默认以View左上角顶点为旋转点。
2.RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY):
(pivotX,pivotY)为旋转点。pivotX为距离左侧的偏移量,pivotY为距离顶部的偏移量。即为相对于View左上角(0,0)的坐标点。
3.RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue):
pivotXType, pivotXValue, pivotYType, pivotYValue 旋转点类型及其值。
3、位移动画
为视图移动时增加位移动画。
//TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) //fromXDelta:起始x轴; toXDelta: 最终x轴; fromYDelta: 起始y轴; toYDelta: 最终y轴. TranslateAnimation ta = new TranslateAnimation(0,200, 0, 300); ta.setDuration(3000); view.startAnimation(ta);
4、缩放动画
为视图的缩放增加动画效果
//ScaleAnimation(float fromX, float toX, float fromY, float toY) //fromX: 动画起始时 X坐标上的伸缩尺寸; // toX: 动画结束时 X坐标上的伸缩尺寸; // fromY: 动画起始时Y坐标上的伸缩尺寸; // toY: 动画结束时Y坐标上的伸缩尺寸. //此时,动画的其实坐标为坐标系原点(0,0); ScaleAnimation sa = new ScaleAnimation(0.5f, 1, 0.5f, 1); sa.setDuration(2000); view.startAnimation(sa);
与旋转动画一样,缩放动画也可以设置缩放的中心点,代码如下所示(这里的参数效果与前面设置的选择中心为自身中心效果相同)。
ScaleAnimation sa = new ScaleAnimation(0.5f, 1, 0.5f, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(2000); view.startAnimation(sa);
5、动画集合
通过AnimationSet,可以将动画以组合的形式展现出来
AnimationSet as = new AnimationSet(true); as.setDuration(2000); //旋转动画 RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(1500); as.addAnimation(ra); //缩放动画 ScaleAnimation sa = new ScaleAnimation(0, 2, 0, 2, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(1500); as.addAnimation(sa); view.startAnimation(as);
实例代码下载
- Android 动画的简单使用——视图动画
- Android视图切换动画库SwitchLayout的简单使用
- Android视图切换动画库SwitchLayout的简单使用
- android动画的简单使用
- Android动画--视图动画
- NSViewAnimation视图的简单动画
- Android实用视图动画及工具系列之一:简单的载入视图和载入动画
- android 简单动画使用
- android 动画 ——视图动画(View Animation)
- android 动画-Tween Animation(二) 动画的简单使用
- Android简单而强大的骨骼动画视图
- Android——Animation笔记:视图动画
- Android动画:AnimationDrawable资源的简单使用
- Android Lottie动画的简单使用
- android动画的简单使用(一)
- Android 属性动画的简单使用
- 动画的简单使用
- android-属性动画、视图动画
- TextView在LinearLayout中的居中显示
- 如何快速转发csdn博客?
- NOIP总结
- 纯 CSS 让弹出层居中显示
- 打开 xlsx 时,提示“向程序发送命令时出现问题”
- Android 动画的简单使用——视图动画
- 移植BOA
- unity(5.6)引用so文件的安卓工程打成jar包,并由unity打包apk流程及问题
- js 的 call 与 apply 速度对比
- linux日志定时删除
- POJ1195:Mobile phones二维树状数组 单点更新,区间查询
- Ajax前后台交互 返回普通格式和JSON格式
- caffe windows Faster rcnn setup.py 找不到 stdbool.h 解决办法
- 程序员如何用技术变现