Android Animation学习(六) View Animation介绍

View Animation

  View animation系统可以用来执行View上的Tween animationFrame animation

  Tween animation可以在View对象上执行一系列的简单变换,比如位置、尺寸、旋转、透明度等。

  animation package 包中包含了tween animation所有的类。

  一系列的动画命令定义了一个完整的tween animation,可以用代码定义也可以用XML资源文件定义。

XML资源文件

  XML资源文件的使用可以见:Animation Resources

  XML文件放在项目的res/anim/目录下。文件必须有一个唯一的根节点。

  这个根节点可以是:<alpha>, <scale>, <translate>, <rotate>, interpolator element, 或者是<set>。

  默认情况下,所有的动画都是并行进行的,要想使得它们顺寻发生,你必须指定startOffset属性。

  有一些值,可以指定是相对于View本身还是相对于父类容器的。

  比如pivotX,要表示相对于自身的50%,要用50%;要表示相对于父类容器的50%,则直接写50

使用例子

  XML文件存储为:res/anim/hyperspace_jump.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><scaleandroid:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromXScale="1.0"android:toXScale="1.4"android:fromYScale="1.0"android:toYScale="0.6"android:pivotX="50%"android:pivotY="50%"android:fillAfter="false"android:duration="700" /><setandroid:interpolator="@android:anim/accelerate_interpolator"android:startOffset="700"><scaleandroid:fromXScale="1.4"android:toXScale="0.0"android:fromYScale="0.6"android:toYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:duration="400" /><rotateandroid:fromDegrees="0"android:toDegrees="-45"android:toYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:duration="400" /></set>
</set>

  在代码中把这个动画应用于一个ImageView:

ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);

 

  除了调用 startAnimation() ,另一种处理方式是通过Animation.setStartTime()方法定义一个开始时间,然后通过View.setAnimation()方法把这个动画赋给控件即可。

View Animation和Property Animation

  View Animation是API Level 1就引入的。

  View Animation在包android.view.animation中。

  动画类叫Animation

  Property Animation是API Level 11引入的,即Android 3.0才开始有Property Animation相关的API。

  Property Animation API在包 android.animation中。

  动画相关类叫Animator

参考资料

  API Guides:View Animation

  http://developer.android.com/guide/topics/graphics/view-animation.html

  Tween animation的包:

  http://developer.android.com/reference/android/view/animation/package-summary.html

  Animation类:

  http://developer.android.com/reference/android/view/animation/Animation.html

  Animation Resources

  http://developer.android.com/guide/topics/resources/animation-resource.html

转载于:https://www.cnblogs.com/mengdd/p/3309731.html

Android Animation学习(六) View Animation介绍相关推荐

  1. Android JNI学习(六)——Java与Native实战演习

    前言: 前几篇我主要介绍了jni先关的基础知识和常用API,相信看过的童靴对JNI已经有了一定的了解,如果不了解也没关系,下面我给出了链接,可以点进去学习.接下来我将实战一个完整案例,案例很简单,就是 ...

  2. Android 虚拟机学习总结Dalvik虚拟机介绍

    1.Dalvik虚拟机与Java虚拟机的最显著差别是它们分别具有不同的类文件格式以及指令集.Dalvik虚拟机使用的是dex(Dalvik Executable)格式的类文件,而Java虚拟机使用的是 ...

  3. Android多媒体学习六:访问网络上的Audio对应的M3U文件,实现网络音频流的播放

    Android中提供了对网络上流媒体的支持,我们可以使用MediaPlayer类来播放一个网络上的音频文件. 但是网络上的站点并不建议我们直接访问流,我们需要获取他提供的M3U文件,根据M3U文件来实 ...

  4. Android Framework学习(六)之RefBase,SP,WP

    Android中通过引用计数来实现智能指针,并且实现有强指针与弱指针.由对象本身来提供引用计数器,但是对象不会去维护引用计数器的值,而是由智能指针来管理. 要达到所有对象都可用引用计数器实现智能指针管 ...

  5. Android Animation学习(一) Property Animation原理介绍和API简介

    Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...

  6. android service 学习(上)

    转载自:http://www.cnblogs.com/allin/archive/2010/05/15/1736458.html Service是android 系统中的一种组件,它跟Activity ...

  7. 动画代码Android动画学习笔记动画代码

    间时紧张,先记一笔,后续优化与完善. 3.0之前,android支撑两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画统系:pr ...

  8. Android Framework学习(八)之Handler消息机制(Native层)解析

    在深入解析Android中Handler消息机制一文中,我们学习了Handler消息机制的java层代码,这次我们来学习Handler消息机制的native层代码. 在Java层的消息处理机制中,Me ...

  9. Android 动画学习笔记

    3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三 ...

最新文章

  1. Python:Scrapy 框架简单介绍
  2. ob_get_contents();basename;file_get_contents用法
  3. GMM-HMM语音识别模型 原理篇
  4. IntelliJ IDEA 设置代码检查级别
  5. PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结
  6. 从 0 到 1 | 手把手教你如何使用哈工大 NLP 工具 —— PyLTP!
  7. 百度地图之添加控件——比例尺、缩略图、平移缩放
  8. JavaScript学习第一天——计算机基础导学(编程语言、计算机基础)
  9. 用户服务协议和隐私政策
  10. USB 3.0 高清音视频采集芯片——MS2130
  11. 【面试官说实现一个顺序表,但听到要求后我沉默了】
  12. 人工智能革命:人类永生还是灭亡(下)
  13. C#实现程序一次打开两个窗口,两个窗口分别放置在两个屏幕
  14. python tips
  15. 未来,谁在革通信设备商的命?
  16. L1-034 点赞 (20分)
  17. 如何还原服务器db文件的原有模式,dbPaaS该如何进行备份恢复管理?
  18. pdf转换为word比较少出现乱码的网站
  19. 【Leetcode】2105. 给植物浇水 II(中等)
  20. 如何理解电容的充放电过程?

热门文章

  1. BCB 多线程的同步与协调
  2. NYOJ 311 完全背包
  3. 使用Modernizr探测HTML5/CSS3新特性
  4. [转]IP动态切换脚本
  5. 【转载】十年学会编程
  6. 一个自动完成插件的类(TextBox 版)
  7. Delphi 计算儒略日(Julian day)的代码
  8. [转载]Java数据库设计中的14个技巧
  9. Maven的个性化定制
  10. 利用OpenCV进行人脸识别