- 浏览: 141881 次
- 性别:
- 来自: 上海
最新评论
-
xueyinv86:
你这个增强版的wordcount是在哪个版本的hadoop上跑 ...
MapReduce入门程序WordCount增强版 -
chenjianjx:
很不错的收集!
几篇关于Hadoop+Hive数据仓库的入门文章 -
canedy:
import org.apache.hadoop.hbase. ...
使用HBase的一个典型例子,涉及了HBase中很多概念 -
天籁の圁:
你的图全部挂了啊
基于Eclipse的Hadoop应用开发环境的配置 -
landyer:
happinesss 写道你是做java开发的吗我是杂货铺,什 ...
MongoDB1.8安装、分布式自动分片(Auto-Sharding)配置备忘
今天和大伙讨论一下Android开发中的Tween动画的实现。首先它和上一章我们讨论的Frame动画同属于系统提供的绘制动画的方法。Tween动画主要的功能是在绘制动画前设置动画绘制的轨迹,包括时间, 位置 ,等等。但是Tween动画的缺点是它只能设置起始点与结束点的两帧,中间过程全部由系统帮我们完成。所以在帧数比较多的游戏开发中是不太会用到它的。
Tween一共提供了4中动画的效果
Scale:缩放动画
Rotate:旋转动画
Translate:移动动画
Alpha::透明渐变动画
Tween与Frame动画类似都需要在res\anim路径下创建动画的 布局文件
1.Scale缩放动画
<scale>标签为缩放节点
android:fromXscale="1.0" 表示开始时X轴缩放比例为 1.0 (原图大小 * 1.0 为原图大小)
android:toXscale="0.0"表示结束时X轴缩放比例为0.0(原图大小 *0.0 为缩小到看不见)
android:fromYscale="1.0" 表示开始时Y轴缩放比例为 1.0 (原图大小 * 1.0 为原图大小)
android:toYscale="0.0"表示结束时Y轴缩放比例为0.0(原图大小 *0.0 为缩小的看不到了)
android:pivotX="50%" X轴缩放的位置为中心点
android:pivotY="50%" Y轴缩放的位置为中心点
android:duration="2000" 动画播放时间 这里是2000毫秒也就是2秒
这个动画布局设置动画从大到小进行缩小。
复制代码
代码如下
复制代码
2.Rotate旋转动画
<rotate>标签为旋转节点
Tween一共为我们提供了3种动画渲染模式。
android:interpolator="@android:anim/accelerate_interpolator" 设置动画渲染器为加速动画(动画播放中越来越快)
android:interpolator="@android:anim/decelerate_interpolator" 设置动画渲染器为减速动画(动画播放中越来越慢)
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 设置动画渲染器为先加速在减速(开始速度最快 逐渐减慢)
如果不写的话 默认为匀速运动
android:fromDegrees="+360"设置动画开始的角度
android:toDegrees="0"设置动画结束的角度
这个动画布局设置动画将向左做360度旋转加速运动。
复制代码
代码实现
复制代码
3.Translate移动动画
<translate>标签为移动节点
android:repeatCount="infinite" 设置动画为循环播放,这里可以写具体的int数值,设置动画播放几次,但是它记录次数是从0开始数的,比如这里设置为2 那么动画从0开始数数0 、1、 2 、实际上是播放了3次。
剩下的几个标签上面已经介绍过了。
这个动画布局设置动画从左到右(0.0),从上到下(320,480)做匀速移动。
复制代码
代码实现
复制代码
4 .Alpha:透明渐变动画
<alpha>标签为alpha透明度节点
android:fromAlpha="1.0" 设置动画起始透明度为1.0 表示完全不透明
android:toAlpha="0.0"设置动画结束透明度为0.0 表示完全透明
也就是说alpha的取值范围为0.0 - 1.0 之间
这个动画布局设置动画从完全不透明渐变到完全透明。
复制代码
代码实现
复制代码
5.综合动画
可以将上面介绍的4种动画设置在一起同时进行播放,那么就须要使用<set>标签将所有须要播放的动画放在一起。
这个动画布局设置动画同时播放移动、渐变、旋转。
复制代码
代码实现
Tween一共提供了4中动画的效果
Scale:缩放动画
Rotate:旋转动画
Translate:移动动画
Alpha::透明渐变动画
Tween与Frame动画类似都需要在res\anim路径下创建动画的 布局文件
1.Scale缩放动画
<scale>标签为缩放节点
android:fromXscale="1.0" 表示开始时X轴缩放比例为 1.0 (原图大小 * 1.0 为原图大小)
android:toXscale="0.0"表示结束时X轴缩放比例为0.0(原图大小 *0.0 为缩小到看不见)
android:fromYscale="1.0" 表示开始时Y轴缩放比例为 1.0 (原图大小 * 1.0 为原图大小)
android:toYscale="0.0"表示结束时Y轴缩放比例为0.0(原图大小 *0.0 为缩小的看不到了)
android:pivotX="50%" X轴缩放的位置为中心点
android:pivotY="50%" Y轴缩放的位置为中心点
android:duration="2000" 动画播放时间 这里是2000毫秒也就是2秒
这个动画布局设置动画从大到小进行缩小。
- <?xml version="1.0" encoding="utf-8"?>
- <scale xmlns:android="http://schemas.android.com/apk/res/android"
- android:fromXScale="1.0"
- android:toXScale="0.0"
- android:fromYScale="1.0"
- android:toYScale="0.0"
- android:pivotX="50%"
- android:pivotY="50%"
- android:duration="2000">
- </scale>
复制代码
代码如下
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.Button;
- import android.widget.ImageView;
- public class ScaleActivity extends Activity {
- /**缩小动画按钮**/
- Button mButton0 = null;
- /**放大动画按钮**/
- Button mButton1 = null;
- /**显示动画的ImageView**/
- ImageView mImageView = null;
- /**缩小动画**/
- Animation mLitteAnimation = null;
- /**放大动画**/
- Animation mBigAnimation = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.scale);
- /**拿到ImageView对象**/
- mImageView = (ImageView)findViewById(R.id.imageView);
- /**加载缩小与放大动画**/
- mLitteAnimation = AnimationUtils.loadAnimation(this, R.anim.scalelitte);
- mBigAnimation = AnimationUtils.loadAnimation(this, R.anim.scalebig);
- mButton0 = (Button)findViewById(R.id.button0);
- mButton0.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- /**播放缩小动画**/
- mImageView.startAnimation(mLitteAnimation);
- }
- });
- mButton1 = (Button)findViewById(R.id.button1);
- mButton1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- /**播放放大动画**/
- mImageView.startAnimation(mBigAnimation);
- }
- });
- }
- }
复制代码
2.Rotate旋转动画
<rotate>标签为旋转节点
Tween一共为我们提供了3种动画渲染模式。
android:interpolator="@android:anim/accelerate_interpolator" 设置动画渲染器为加速动画(动画播放中越来越快)
android:interpolator="@android:anim/decelerate_interpolator" 设置动画渲染器为减速动画(动画播放中越来越慢)
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 设置动画渲染器为先加速在减速(开始速度最快 逐渐减慢)
如果不写的话 默认为匀速运动
android:fromDegrees="+360"设置动画开始的角度
android:toDegrees="0"设置动画结束的角度
这个动画布局设置动画将向左做360度旋转加速运动。
- <?xml version="1.0" encoding="utf-8"?>
- <rotate xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_interpolator"
- android:fromDegrees="+360"
- android:toDegrees="0"
- android:pivotX="50%"
- android:pivotY="50%"
- android:duration="2000"
- />
复制代码
代码实现
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.Button;
- import android.widget.ImageView;
- public class RotateActivity extends Activity {
- /**向左旋转动画按钮**/
- Button mButton0 = null;
- /**向右旋转动画按钮**/
- Button mButton1 = null;
- /**显示动画的ImageView**/
- ImageView mImageView = null;
- /**向左旋转动画**/
- Animation mLeftAnimation = null;
- /**向右旋转动画**/
- Animation mRightAnimation = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.retate);
- /**拿到ImageView对象**/
- mImageView = (ImageView)findViewById(R.id.imageView);
- /**加载向左与向右旋转动画**/
- mLeftAnimation = AnimationUtils.loadAnimation(this, R.anim.retateleft);
- mRightAnimation = AnimationUtils.loadAnimation(this, R.anim.retateright);
- mButton0 = (Button)findViewById(R.id.button0);
- mButton0.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- /**播放向左旋转动画**/
- mImageView.startAnimation(mLeftAnimation);
- }
- });
- mButton1 = (Button)findViewById(R.id.button1);
- mButton1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- /**播放向右旋转动画**/
- mImageView.startAnimation(mRightAnimation);
- }
- });
- }
- }
复制代码
3.Translate移动动画
<translate>标签为移动节点
android:repeatCount="infinite" 设置动画为循环播放,这里可以写具体的int数值,设置动画播放几次,但是它记录次数是从0开始数的,比如这里设置为2 那么动画从0开始数数0 、1、 2 、实际上是播放了3次。
剩下的几个标签上面已经介绍过了。
这个动画布局设置动画从左到右(0.0),从上到下(320,480)做匀速移动。
- <?xml version="1.0" encoding="utf-8"?>
- <translate xmlns:android="http://schemas.android.com/apk/res/android"
- android:fromXDelta="0"
- android:toXDelta="320"
- android:fromYDelta="0"
- android:toYDelta="480"
- android:duration="2000"
- android:repeatCount="infinite"
- />
复制代码
代码实现
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.ImageView;
- public class TranslateActivity extends Activity {
- /**显示动画的ImageView**/
- ImageView mImageView = null;
- /**移动动画**/
- Animation mAnimation = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.translate);
- /**拿到ImageView对象**/
- mImageView = (ImageView)findViewById(R.id.imageView);
- /**加载移动动画**/
- mAnimation = AnimationUtils.loadAnimation(this, R.anim.translate);
- /**播放移动动画**/
- mImageView.startAnimation(mAnimation);
- }
- }
复制代码
4 .Alpha:透明渐变动画
<alpha>标签为alpha透明度节点
android:fromAlpha="1.0" 设置动画起始透明度为1.0 表示完全不透明
android:toAlpha="0.0"设置动画结束透明度为0.0 表示完全透明
也就是说alpha的取值范围为0.0 - 1.0 之间
这个动画布局设置动画从完全不透明渐变到完全透明。
- <?xml version="1.0" encoding="utf-8"?>
- <alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:fromAlpha="1.0"
- android:toAlpha="0.0"
- android:repeatCount="infinite"
- android:duration="2000">
- </alpha>
复制代码
代码实现
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.ImageView;
- public class AlphaActivity extends Activity {
- /**显示动画的ImageView**/
- ImageView mImageView = null;
- /**透明动画**/
- Animation mAnimation = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.translate);
- /**拿到ImageView对象**/
- mImageView = (ImageView)findViewById(R.id.imageView);
- /**加载透明动画**/
- mAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha);
- /**播放透明动画**/
- mImageView.startAnimation(mAnimation);
- }
- }
复制代码
5.综合动画
可以将上面介绍的4种动画设置在一起同时进行播放,那么就须要使用<set>标签将所有须要播放的动画放在一起。
这个动画布局设置动画同时播放移动、渐变、旋转。
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android">
- <rotate
- android:interpolator="@android:anim/accelerate_interpolator"
- android:fromDegrees="+360"
- android:toDegrees="0"
- android:pivotX="50%"
- android:pivotY="50%"
- android:duration="2000"
- android:repeatCount="infinite"
- />
- <alpha android:fromAlpha="1.0"
- android:toAlpha="0.0"
- android:repeatCount="infinite"
- android:duration="2000">
- </alpha>
- <translate
- android:fromXDelta="0"
- android:toXDelta="320"
- android:fromYDelta="0"
- android:toYDelta="480"
- android:duration="2000"
- android:repeatCount="infinite"
- />
- </set>
复制代码
代码实现
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.ImageView;
- public class AllActivity extends Activity {
- /**显示动画的ImageView**/
- ImageView mImageView = null;
- /**综合动画**/
- Animation mAnimation = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.translate);
- /**拿到ImageView对象**/
- mImageView = (ImageView)findViewById(R.id.imageView);
- /**加载综合动画**/
- mAnimation = AnimationUtils.loadAnimation(this, R.anim.all);
- /**播放综合动画**/
- mImageView.startAnimation(mAnimation);
- }
- }
发表评论
-
android系统参数的读取
2012-01-12 15:35 19641.手机信息查看助手可行性分析 开始进入编写程序前,需要对需求 ... -
Android 动画之Tween动画详细讲解及java源码实现
2011-12-19 22:43 1629Tween动画又称“补间动画”、“中间动画”,这并不重要,就好 ... -
Android Animation Tween动画效果的使用
2011-12-19 22:40 1608Animation Tween动画可以通过java代码实现,也 ... -
Android自定义控件-ReflectionImage
2011-12-17 12:31 999ReflectionImage是一个有倒影效果的图片.先 ... -
一个用java读取XML文件的简单方法
2011-08-14 20:02 1073XML文件 book.xml <book& ... -
android SAX
2011-08-14 19:17 775SAXBuilder builder = new SAX ... -
Android DOM 解析 xml
2011-08-11 09:34 1129原文地址:http://blog.163.com/joe_zh ... -
Android开发中保存数据的四种方法方法
2011-07-28 22:31 886在Android开发中我们会接触到四种数据存储方式,每种存储方 ... -
android读取原始的xml文件
2011-04-24 15:45 1417项目中经常会用到一些原始的xml文件,那么我们可以定义 ... -
Android开发必备武器,处理XML的利器--SAX快速上手
2011-04-24 10:00 690相信各位android开发者,对SAX已经并不陌生了,SAX( ... -
三个特殊的资源目录 /res/xml /res/raw 和 /assets
2011-04-24 09:50 849原帖地址:http://www.eoeandroid.com/ ...
相关推荐
在Android游戏开发中,Tween动画是一种非常常见的动画形式,它主要用于实现对象的平滑移动、缩放、旋转等效果。Tween动画,源自于图形设计领域,意为“时间插值”,在Android中,它是通过`android.animation....
总的来说,Tween动画在Android游戏开发中扮演着重要的角色,它让游戏元素的移动、缩放、旋转和淡入淡出等效果得以实现,提升了游戏的视觉表现力。开发者可以根据需求选择合适的Tween动画类型,结合AnimationSet和...
在Android开发中,动画是提升用户体验的关键因素之一。Tween动画,又称补间动画,是Android提供的基础动画类型,主要用于对象的平移、旋转、缩放和透明度变化等效果。本篇文章将深入探讨如何通过XML在Android中实现...
在Android开发中,动画效果是提升用户体验的关键因素之一。Tween动画是Android系统提供的一种基础动画类型,主要用于对象的平移、缩放、旋转和透明度变化等视觉效果。本篇将详细探讨Android Tween动画的基本原理、...
在Android开发中,动画是提升用户体验的关键因素之一。Tween动画是一种基本的动画类型,它可以改变View对象的属性,如透明度、旋转、平移和缩放。本篇将详细讲解如何使用XML在Android中实现这四种Tween动画以及集合...
在Android开发中,动画是提升用户体验的关键因素之一。Tween动画,又称平移动画,是Android提供的基础动画类型,主要用于对象的透明度、缩放、平移和旋转等属性的变化。让我们深入探讨Android Tween动画的源码,理解...
在Android开发中,Android SDK提供了Tween动画的支持,位于`android.view.animation`包下,包含如TranslateAnimation、ScaleAnimation、AlphaAnimation等类,分别用于处理平移、缩放和透明度的变化。 对于一个Tween...
在Android系统中提供了两种动画实现方式:一种是Tween动画,通过视图组件移动、放大、缩小,以及产生透明度的变化等来实现动画;另一种是Frame动画,这是一种传统的通过顺序播放排列好的图片来实现的动画方法,类似...
在Android游戏开发中,动画是提升用户体验和游戏趣味性的重要元素之一。Tween动画,也称为平移动画,是Android系统提供的一种基础动画类型,用于实现对象在屏幕上的位置、大小、透明度等属性的平滑过渡。在本篇中,...
在Android开发中,动画是提升用户体验的关键因素之一。Tween动画,又称补间动画,是Android提供的基础动画系统,用于在两个关键帧之间平滑地改变对象的属性,如透明度、大小、位置或旋转角度。在本文中,我们将深入...
在Android开发中,动画是提升用户体验的关键因素,它能让应用变得更加生动有趣。本文将深入探讨Android中的五种主要动画类型:Tween动画、Drawable动画、Property动画、Material Design动画以及Transition动画。 1....
在Android开发中,动画是提升用户体验的关键因素之一。Tween补间动画是Android系统提供的一种基础动画类型,主要用于平移、缩放、旋转和透明度变化等简单效果。本篇文章将深入探讨Tween补间动画的工作原理、实现方式...
Tween动画在Android开发中是一种非常重要的视觉效果工具,它能够为用户界面增添动态感和流畅性,提升用户体验。Tween动画,全称为“Tween动画效果”,主要用于实现对象在屏幕上的平移、旋转、缩放以及透明度变化等...
Tween动画在IT行业中,特别是在游戏开发、用户界面设计和移动应用中扮演着重要角色,它是一种平滑地改变对象属性的动画技术。Tween一词来源于英语“in-between”,意为“两者之间”,在动画领域中,它指的是在两个...
在Android开发中,动画是提升用户体验的关键因素之一。补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或旋转等属性进行平滑过渡来实现视觉效果。本篇文章将深入探讨...
在Android开发中,Tween动画是一种基础的动画形式,主要用于改变View对象的位置、大小、透明度等属性,而不会改变View的实际布局。Tween动画是通过Animatior类来实现的,它可以提供平滑的视觉效果,使得用户界面更具...
在Java和Android开发中,Tween动画是一个非常实用的工具,它可以极大地提高应用的用户体验,因为它能够创造出流畅、自然的视觉效果。例如,当我们需要一个按钮在点击后逐渐放大或淡出显示一个对话框时,Tween动画就...
Tween动画是一种在计算机图形学和游戏开发中广泛使用的动画技术,它主要用于创建平滑、连续的过渡效果。Tween,源自英文“in between”,意为“介于之间”,在动画领域中,它指的是从一个状态平滑地过渡到另一个状态...