动画效果编程基础--AnimationAndroid
动画类型
Android的animation由四种类型组成
XML中
alpha
|
渐变透明度动画效果
|
scale
|
渐变尺寸伸缩动画效果
|
translate
|
画面转换位置移动动画效果
|
rotate
|
画面转移旋转动画效果
|
JavaCode中
AlphaAnimation
|
渐变透明度动画效果
|
ScaleAnimation
|
渐变尺寸伸缩动画效果
|
TranslateAnimation
|
画面转换位置移动动画效果
|
RotateAnimation
|
画面转移旋转动画效果
|
Android动画模式
Animation主要有两种动画模式:
一种是tweened animation(渐变动画)
XML中
|
JavaCode
|
alpha
|
AlphaAnimation
|
scale
|
ScaleAnimation
|
一种是frame by frame(画面转换动画)
XML中
|
JavaCode
|
translate
|
TranslateAnimation
|
rotate
|
RotateAnimation
|
如何在XML文件中定义动画
① 打开Eclipse,新建Android工程
② 在res目录中新建anim文件夹
③ 在anim目录中新 建一个myanim.xml(注意文件名小写)
④ 加入XML的动画代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha/>
<scale/>
<translate/>
<rotate/>
</set>
Android动画解析--XML
<alpha>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="3000"
/>
<!-- 透明度控制动画效果 alpha
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度
说明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字
长整型值:
duration 属性为动画持续时间
说明:
时间以毫秒为单位
-->
</set>
<scale>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator=
"@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.4"
android:fromYScale="0.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
</set>
<!-- 尺寸伸缩动画效果 scale
属性:interpolator 指定一个动画的插入器
在我试验过程中,使用android.res.anim中的资源时候发现
有三种动画插入器:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点型值:
fromXScale 属性为动画起始时 X坐标上的伸缩尺寸
toXScale 属性为动画结束时 X坐标上的伸缩尺寸
fromYScale 属性为动画起始时Y坐标上的伸缩尺寸
toYScale 属性为动画结束时Y坐标上的伸缩尺寸
说明:
以上四种属性值
0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大
pivotX 属性为动画相对于物件的X坐标的开始位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
说明:
以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
布尔型值:
fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
-->
<translate>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="30"
android:toXDelta="-80"
android:fromYDelta="30"
android:toYDelta="300"
android:duration="2000"
/>
<!-- translate 位置转移动画效果
整型值:
fromXDelta 属性为动画起始时 X坐标上的位置
toXDelta 属性为动画结束时 X坐标上的位置
fromYDelta 属性为动画起始时 Y坐标上的位置
toYDelta 属性为动画结束时 Y坐标上的位置
注意:
没有指定fromXType toXType fromYType toYType 时候,
默认是以自己为相对参照物
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</set>
<rotate>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000" />
<!-- rotate 旋转动画效果
属性:interpolator 指定一个动画的插入器
在我试验过程中,使用android.res.anim中的资源时候发现
有三种动画插入器:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点数型值:
fromDegrees 属性为动画起始时物件的角度
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
说明:
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
pivotX 属性为动画相对于物件的X坐标的开始位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
说明: 以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</set>
如何使用XML中的动画效果
public static Animation loadAnimation (Context context, int id)
//第一个参数Context为程序的上下文
//第二个参数id为动画XML文件的引用
//例子:
myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
//在代码中定义 动画实例对象
private Animation myAnimation_Alpha;
private Animation myAnimation_Scale;
private Animation myAnimation_Translate;
private Animation myAnimation_Rotate;
//根据各自的构造方法来初始化一个实例对象
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
分享到:
相关推荐
### Android动画效果编程基础 #### 一、Android动画概述 Android平台提供了丰富的动画支持机制,使得开发者能够轻松地实现各种视觉效果,提升用户体验。在Android中,动画主要分为两大类:**逐帧动画(Frame-by-...
本文实例讲述了Android编程实现RotateAnimation设置中心点旋转动画效果。分享给大家供大家参考,具体如下: 在xml设置: <?xml version=1.0 encoding=utf-8?> <rotate xmlns:android=...
此外,还涉及了触摸事件处理和动画效果的实现。 第14章:Android活动(Activity)管理 此章重点讲解了Activity生命周期和栈管理,包括如何启动、切换、暂停、恢复和销毁Activity。同时,讨论了Intent的概念,它是...
9. **动画组合与嵌套**:在同一个SVGA文件中,可以包含多个动画序列,通过编程方式控制它们的执行顺序和同步,实现复杂的动画组合效果。 10. **兼容性**:SVGAPlayer通常会考虑不同安卓版本和设备的兼容性,确保在...
14. **Android动画**:学习使用属性动画、帧动画和视图动画,提升应用的用户体验。 15. **Android组件间通信**:使用Intent、Binder和AIDL实现组件间的通信,以及如何设计应用架构以优化组件间的解耦。 16. **性能...
此外,Android还提供了`AnimationSet`类,可以编程方式管理多个动画。 总的来说,Android的动画系统为开发者提供了极大的灵活性,通过熟练掌握translate、scale、alpha和rotate这四种基本动画,可以创建出各种复杂...
2. **动画效果**:Android支持多种动画类型,包括视图动画、属性动画等。实例源码会展示如何创建平滑、动态的用户交互体验。 3. **传感器应用**:Android设备上的传感器如加速度计、陀螺仪、GPS等,可以用于开发...
实现Tween动画和Frame动画,Android提供了XML文件和代码编程两种方式。XML文件通常放置在`res/anim`目录下,便于资源管理,而代码实现则更灵活,适合动态控制和复杂动画逻辑。 1. **透明度控制动画(Alpha ...
书中提供的源码是学习Android编程的重要参考资料,它能让读者更直观地理解书中的概念和实践技巧。以下是对这些源码及Android核心技术的详细解析: 1. **Android基础知识**:从第1章开始,源码可能包括对Android开发...
《Android核心技术与实例详解》是Android开发者...通过阅读《Android核心技术与实例详解》并研究源码,开发者不仅能深入理解Android系统的工作原理,还能学习到实际项目中常见的问题解决方案,从而提升自己的编程技能。
6. **动画系统**:阐述骨骼动画和关键帧动画的原理,以及如何在Android中实现角色和物体的动态行为。 7. **物理引擎**:介绍Box2D或其他物理引擎如何用于模拟碰撞检测和重力等自然现象,为游戏增加互动性。 8. **...
在Android应用开发中,为了提升用户体验,经常需要添加各种...如果你想要了解更多关于Android动画的知识,可以参考博客链接:[Android点赞动画详解](http://blog.csdn.net/hehaiminginadth/article/details/46473269)。
《Android核心技术与实例详解—Android游戏开发实践—快乐数独》是针对Android平台游戏开发的一份深入学习资源,其中包含了完整的源代码,旨在帮助开发者掌握Android游戏开发的关键技术和实践经验。这篇博文通过...
在图形和动画方面,书会介绍如何使用Canvas进行2D绘图,如何利用OpenGL ES进行3D图形渲染,以及如何创建平滑的动画效果,提升应用的视觉吸引力。 最后,书中可能会探讨一些进阶话题,如多线程处理、异步任务...
同时,可能会讲解到事件监听、触摸事件处理和动画效果的实现。 第7章:这章可能关注的是数据存储,包括SQLite数据库的使用、ContentProvider的概念、SharedPreferences的读写操作,以及如何使用文件存储来保存应用...
这份"Android3D游戏开发技术详解源代码"集合提供了一个全面的学习资源,包含了多种游戏项目的源码,非常适合对3D游戏开发感兴趣或者正在学习这门技术的开发者。下面,我们将深入探讨这些标签所涵盖的关键知识点。 ...
在这一章,读者将深入学习如何使用OpenGL ES进行实际编程,包括设置视口、创建缓冲区、绘制几何体以及实现基本的光照效果。这是开发者从理论到实践的第一步。 3. **第10章:3D模型加载与场景管理** 3D游戏中的...
Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。 二、Animations的分类 Animations从总体上可以分为...
12. **图形和动画**:Canvas和OpenGL ES可用于高性能的图形绘制,而Property Animation和ValueAnimator可以实现平滑的动画效果。 13. **Android Jetpack组件**:Android Jetpack是一系列库,简化了开发流程,包括...
本文将对Android动画进行全面总结,探讨如何利用Android系统提供的工具和技术来创建各种类型的动画。 一、Android动画类型 1. **帧动画(AnimationDrawable)**:帧动画类似于电影胶片,通过连续播放一系列图片来...