`
hunankeda110
  • 浏览: 750290 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android中动画效果编程详解

阅读更多

动画效果编程基础--AnimationAndroid

动画类型

Androidanimation由四种类型组成

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中的动画效果



    如何 在Java代码中定义动画

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);

1
2
分享到:
评论
2 楼 蓝月儿 2011-04-07  
我把动画持续时间设的大了点 没有闪屏了,可是后一个页面出现的有点慢啊
1 楼 蓝月儿 2011-04-07  
我的一个 翻页动画 效果,设置了translate 和 alpha ,在手势滑动式 感觉后一页先闪屏,又出现的呢。这大概是什么原因呢

相关推荐

    Android动画效果编程基础

    ### Android动画效果编程基础 #### 一、Android动画概述 Android平台提供了丰富的动画支持机制,使得开发者能够轻松地实现各种视觉效果,提升用户体验。在Android中,动画主要分为两大类:**逐帧动画(Frame-by-...

    Android编程实现RotateAnimation设置中心点旋转动画效果

    本文实例讲述了Android编程实现RotateAnimation设置中心点旋转动画效果。分享给大家供大家参考,具体如下: 在xml设置: &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;rotate xmlns:android=...

    android核心技术与实例详解光盘源代码3

    此外,还涉及了触摸事件处理和动画效果的实现。 第14章:Android活动(Activity)管理 此章重点讲解了Activity生命周期和栈管理,包括如何启动、切换、暂停、恢复和销毁Activity。同时,讨论了Intent的概念,它是...

    SVGA 实现安卓动画效果

    9. **动画组合与嵌套**:在同一个SVGA文件中,可以包含多个动画序列,通过编程方式控制它们的执行顺序和同步,实现复杂的动画组合效果。 10. **兼容性**:SVGAPlayer通常会考虑不同安卓版本和设备的兼容性,确保在...

    Android 典型技术模块开发详解 pdf

    14. **Android动画**:学习使用属性动画、帧动画和视图动画,提升应用的用户体验。 15. **Android组件间通信**:使用Intent、Binder和AIDL实现组件间的通信,以及如何设计应用架构以优化组件间的解耦。 16. **性能...

    Android动画效果translate、scale、alpha、rotate详解

    此外,Android还提供了`AnimationSet`类,可以编程方式管理多个动画。 总的来说,Android的动画系统为开发者提供了极大的灵活性,通过熟练掌握translate、scale、alpha和rotate这四种基本动画,可以创建出各种复杂...

    Android创意实例详解书籍源码

    2. **动画效果**:Android支持多种动画类型,包括视图动画、属性动画等。实例源码会展示如何创建平滑、动态的用户交互体验。 3. **传感器应用**:Android设备上的传感器如加速度计、陀螺仪、GPS等,可以用于开发...

    Android实现动画效果详解

    实现Tween动画和Frame动画,Android提供了XML文件和代码编程两种方式。XML文件通常放置在`res/anim`目录下,便于资源管理,而代码实现则更灵活,适合动态控制和复杂动画逻辑。 1. **透明度控制动画(Alpha ...

    Android核心技术与实例详解书后源码

    书中提供的源码是学习Android编程的重要参考资料,它能让读者更直观地理解书中的概念和实践技巧。以下是对这些源码及Android核心技术的详细解析: 1. **Android基础知识**:从第1章开始,源码可能包括对Android开发...

    《android核心技术与实例详解》源码(完整版)

    《Android核心技术与实例详解》是Android开发者...通过阅读《Android核心技术与实例详解》并研究源码,开发者不仅能深入理解Android系统的工作原理,还能学习到实际项目中常见的问题解决方案,从而提升自己的编程技能。

    Android3D游戏开发技术详解与典型案例全

    6. **动画系统**:阐述骨骼动画和关键帧动画的原理,以及如何在Android中实现角色和物体的动态行为。 7. **物理引擎**:介绍Box2D或其他物理引擎如何用于模拟碰撞检测和重力等自然现象,为游戏增加互动性。 8. **...

    android实现点赞动画

    在Android应用开发中,为了提升用户体验,经常需要添加各种...如果你想要了解更多关于Android动画的知识,可以参考博客链接:[Android点赞动画详解](http://blog.csdn.net/hehaiminginadth/article/details/46473269)。

    Android核心技术与实例详解—Android游戏开发实践—快乐数独(附完整源码)

    《Android核心技术与实例详解—Android游戏开发实践—快乐数独》是针对Android平台游戏开发的一份深入学习资源,其中包含了完整的源代码,旨在帮助开发者掌握Android游戏开发的关键技术和实践经验。这篇博文通过...

    android应用开发详解

    在图形和动画方面,书会介绍如何使用Canvas进行2D绘图,如何利用OpenGL ES进行3D图形渲染,以及如何创建平滑的动画效果,提升应用的视觉吸引力。 最后,书中可能会探讨一些进阶话题,如多线程处理、异步任务...

    Android核心技术与实例详解 随书源码

    同时,可能会讲解到事件监听、触摸事件处理和动画效果的实现。 第7章:这章可能关注的是数据存储,包括SQLite数据库的使用、ContentProvider的概念、SharedPreferences的读写操作,以及如何使用文件存储来保存应用...

    Android3D游戏开发技术详解源代码(各种游戏项目源码)

    这份"Android3D游戏开发技术详解源代码"集合提供了一个全面的学习资源,包含了多种游戏项目的源码,非常适合对3D游戏开发感兴趣或者正在学习这门技术的开发者。下面,我们将深入探讨这些标签所涵盖的关键知识点。 ...

    Android 3D游戏开发技术详解与典型案例_源码

    在这一章,读者将深入学习如何使用OpenGL ES进行实际编程,包括设置视口、创建缓冲区、绘制几何体以及实现基本的光照效果。这是开发者从理论到实践的第一步。 3. **第10章:3D模型加载与场景管理** 3D游戏中的...

    Android编程之Animation动画详解

    Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。 二、Animations的分类 Animations从总体上可以分为...

    Android平板电脑开发实战详解和典型案例 源码手册

    12. **图形和动画**:Canvas和OpenGL ES可用于高性能的图形绘制,而Property Animation和ValueAnimator可以实现平滑的动画效果。 13. **Android Jetpack组件**:Android Jetpack是一系列库,简化了开发流程,包括...

    android动画之最总总结

    本文将对Android动画进行全面总结,探讨如何利用Android系统提供的工具和技术来创建各种类型的动画。 一、Android动画类型 1. **帧动画(AnimationDrawable)**:帧动画类似于电影胶片,通过连续播放一系列图片来...

Global site tag (gtag.js) - Google Analytics