android学习日记22--Animation动画简介
Animation动画主要有两种:帧动画(Frame Animation)和补间动画(Tween Animation)。
补间动画主要包括对位置、角度、尺寸等属性的变化,而帧动画则是通过若干帧图片轮流切换显示的。
1、帧动画
按顺序显示事先准备好的图片,跟动漫类似。主要用到的类AnimationDrawable,每个帧都是AnimationDrawable对象。
定义帧动画可以在代码直接进行。也可以通过XML文件定义,定义帧动画的文件存放在res/anim目录下。XML指定帧出现的顺序
及每个帧的持续时间。
帧动画XML主要标记和属性如下:
需要强调的是:启动Frame Animation动画的代码rocketAnimation.start();不能在OnCreate()中,因为在OnCreate()中
AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。这里实在拖曳事件中实现的。
AnimationDrawable的主要方法如下:
帧动画使用例子
完整帧动画XML(frame_ani.xml)代码:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/fish1" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish1" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish2" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish3" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish4" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish5" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish6" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish7" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish8" android:duration="200" android:visible="true"/>
<item android:drawable="@drawable/fish8" android:duration="200" android:visible="true"/>
</animation-list>
启动帧动画JAVA代码:
@Override
public void onClick(View v) { //重写onClick方法
ImageView iv = (ImageView)findViewById(R.id.iv);
iv.setBackgroundResource(R.anim.frame_ani);
AnimationDrawable ad = (AnimationDrawable)iv.getBackground();
ad.start(); //启动AnimationDrawable
}
点击按钮,启动帧动画,可以看见不同fish图片的切换,鱼儿在游动(自己脑补哈)。
2、补间动画
补间动画作用于View视图,主要包括对View对象的位置、尺寸、旋转角度、透明度的变化。补间动画涉及的类主要有
Animation、AnimationSet等。
补间动画同帧动画可以在代码直接进行。也可以通过XML文件定义,推荐用XML,因为这样可读性比较高和利于扩展。
XML文件存放在res/anim下。
补间动画XML几种变化标记和属性如下:
公有属性如下:
补间动画使用例子:
完整补间动画XML代码:
<?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及编码方式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="6000"
/> <!-- 透明度的变换 -->
<scale
android:interpolator= "@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="9000"
/> <!-- 尺寸的变换 -->
<translate
android:fromXDelta="30"
android:toXDelta="0"
android:fromYDelta="30"
android:toYDelta="0"
android:duration="10000"
/> <!-- 尺位置的变换 -->
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="10000"
/> <!-- 旋转变换 -->
</set>
启动补间动画JAVA代码:
@Override
public void onClick(View v) { //重写onClick方法
ImageView iv = (ImageView)findViewById(R.id.iv);
Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.tween_ani);
iv.startAnimation(animation); //启动动画
}
点击按钮,启动补间动画,可以看见螃蟹从中心慢慢旋转显现出来。
android学习日记22--Animation动画简介的更多相关文章
- android学习日记03--常用控件Dialog
常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...
- android学习日记05--Activity间的跳转Intent实现
Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...
- android学习日记03--常用控件checkbox/radiobutton
常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...
- android学习日记03--常用控件button/imagebutton
常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...
- Android中xml设置Animation动画效果详解
在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...
- android学习日记02--Activity简介
一.Activity活动 学习Android,第一个都会接触Activity滴,Activity表示一个用户界面,是Android应用程序的入口,可以同时有多个界面,但只会显示栈顶的界面. Activ ...
- android学习日记18--Adapter简介
一.Adapter 1.简述 最近学的GridView和Gallery 都有用到Adapter适配器,发现它貌似蛮重要的.专门上网搜了下有关Adapter的资料.android绝大多数应用是JAVA语 ...
- transition和animation动画简介
本文介绍CSS动画的两大组成部分:transition和animation.我不打算给出每一条属性的详尽介绍,那样可以写一本书.这篇文章只是一个简介,帮助初学者了解全貌,同时又是一个快速指南,当你想不 ...
- 【Android学习日记】
(一) Android 开发基础 1 Android平台的特性 1) 应用程序框架支持组建的重用和替换,包括打电话应用程序.文件管理器等. 2) Dalvik虚拟机专门为移动设备做了优化,Dalv ...
随机推荐
- C# DateDiff与DateAdd
原文地址:http://www.wlm.so/Article/Detail/lmb49q5hxpqyi00000 刚刚在百度上搜C#里面的DateDiff,一看吓一跳,C#没有这个函数. 还有各种自定 ...
- 中国Azure媒体服务RESTAPI的Endpoint
Amber Zhao Thu, Feb 26 2015 4:09 AM 由于海外Azure和中国Azure有不同的domain,很多用户在使用媒体服务RESTAPI时,需要指定中国Azure媒体服务 ...
- Java [leetcode 9] Palindrome Number
问题描述: Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could n ...
- (5)jvm垃圾回收器相关垃圾回收算法
引用计数法[原理]--->引用计数器是经典的也是最古老的垃圾收集防范.--->实现原理:对于对象A,只要有任何一个对象引用A,则计数器加1.当引用失效时,计数器减1.只要对象A的计数器值为 ...
- JQuery focus()
跳转到登陆页面时可以使用focus方法 <input name="login_account"id="login_account"class=" ...
- 也用 Log4Net 之走进Log4Net (四)
转载地址:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 我是转的别人的内容,我觉得他写的非常好,所以我把其中三分之二转了过来 ...
- Hessian介绍
Hessian是什么 Hessian类似Web Service,是一种高效简洁的远程调用框架. Hessian的主页:http://hessian.caucho.com/ 有关网上的对Hess ...
- git和repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- HIbernate学习笔记(八) hibernate缓存机制
hibernate缓存 一. Session级缓存(一级缓存) 一级缓存很短和session的生命周期一致,因此也叫session级缓存或事务级缓存 hibernate一级缓存 那些方法支持一级缓存: ...
- HIbernate学习笔记(二) hibernate对象的三种状态与核心开发接口
1.在hibernate中持久化对象有三个状态,这个面试时可能会问到: (1)transient瞬时态:在数据库中没有与之匹配的数据,一般就是只new出了这个对象,并且在session缓存中也没有即此 ...