补间动画是指定开始和结束的图像状态,自动生成需要显示的过度图像的动画。补间动画又分为四种:移动,缩放,旋转,通明度。下面以移动补间动画来做简单说明,效果是把一个ImageView从左上角,向右下方向移动,然后返回到起始点,中间对动画状态进行监听,效果如图:
下面简述其主要步骤:
1、定义动画文件:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="5000"
android:fromXDelta="0"
android:fromYDelta="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXDelta="200"
android:toYDelta="300" />
说明:
- android:interpolator:动画渲染器,有三种渲染器可以设
置:accelerate_decelerate_interpolator,accelerate_interpolator,decelerate_interpolator,
它们分别对应的效果是:开始加速中间减速,一直加速,一直减速。
- fromXDelta;动画起始位置的X坐标;
- fromYDelta:动画起始位置的Y坐标;
- toXDelta:动画结束位置的X坐标;
- toYDelta:动画结束位置的Y坐标;
- duration:动画持续时间,单位毫秒。
2、加载并启动动画:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;
import android.widget.ImageView;
public class TranslateActivity extends Activity implements AnimationListener {
private static final String TAG = "Translate";
private ImageView imageView;
private Animation translateAnimation;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView) findViewById(R.id.imageView1);
// 装载动画文件
translateAnimation = AnimationUtils.loadAnimation(this, R.xml.translate);
// 设置动画监听器
translateAnimation.setAnimationListener(this);
// 设置重复次数
translateAnimation.setRepeatCount(1);
// 设置重复模式
translateAnimation.setRepeatMode(Animation.REVERSE);
// 启动动画
// imageView.setAnimation(translateAnimation);
// translateAnimation.start();
imageView.startAnimation(translateAnimation);
}
@Override
public void onAnimationEnd(Animation animation) {
Log.i(TAG, "onAnimationEnd");
}
@Override
public void onAnimationRepeat(Animation animation) {
Log.i(TAG, "onAnimationRepeat");
}
@Override
public void onAnimationStart(Animation animation) {
Log.i(TAG, "onAnimationStart");
}
}
修改上面的某些代码,猜想效果,并和实际效果作对比,有时会发现很有趣的现象!:)
缩放动画的XML示例代码:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<scale
android:duration="500"
android:fromXScale="1"
android:fromYScale="0.1"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="100"
android:toXScale="1"
android:toYScale="1.0" />
</set>
旋转动画的XML示例代码如下:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="10000"
android:fromDegrees="0"
android:interpolator="@anim/linear_interpolator"
android:pivotX="200%"
android:pivotY="300%"
android:repeatCount="infinite"
android:repeatMode="restart"
android:toDegrees="360" />
3、多说一句:
使用代码同样可以实现从XML加载动画一样的效果,有兴趣的话,可以试试看!:)
- 大小: 13.3 KB
分享到:
相关推荐
资源博客地址:https://blog.csdn.net/lanrenxiaowen/article/details/83546514
Android帧动画和补间动画总结,帧动画和补间动画代码实现。
补间动画大小,透明度,移动,旋转,动画集合等动画方式
主要介绍了Android动画之补间动画(Tween Animation)用法,结合实例形式较为详细的分析了Android补间动画的定义,原理,注意事项与相关使用技巧,需要的朋友可以参考下
Android 动画机制 补间、属性、帧动画、源码分析 Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类: * View Animation:最早提供的一种动画,用来这只view。 * Drawable ...
本文目录补间动画概述和分类各类补间动画实现xml实现补间动画透明度动画-AlphaAnimation缩放动画-ScaleAnimation位移动画-TranslateAnimation旋转动画-RotateAnimation动画组合-AnimationSet代码实现补间动画透明度...
之前说过了在Android中,动画Animation的实现有两种方式:Tween Animation(渐变动画)和Frame Animation(帧动画)。渐变动画是通过对场景里的对象不断做图像变换(平移、缩放、旋转等)产生动画效果。帧动画则是...
Android常见的补间Animation、Android动画特效,及Activity切换动画。
Android补间动画(真材实料,拒绝虚假)
实现了android中帧动画、补间动画、属性动画的各种方式
该资源包含了一个自定义的补间动画,有详细的注释,喜欢的下载。
属性动画帧动画补间动画合集的一个小demo,想对动画有所研究的朋友可以下载下来看下
这是一个Android的补间动画小实例 ,大家可以进行参考
Android 补间动画,具体介绍了平移,旋转,缩放,渐变四种动画效果的实现,简单易懂
补间动画;选择创建好的anim文件夹右键选择Animation Resource File创建xml文件,再打开的对话框中录入File name录入translate_animation,Root element选择set标签。;补间动画;补间动画;用同样的方式在anim文件夹...
补间动画是Android中最常用的动画之一,在程序开发中使用很多,比如像activity的切换,泡泡窗口,对话框中使用往往会起到画龙点睛的效果,这个例子写的是在activity切换时,补间动画的使用
Android动画介绍-补间动画(2)
Android动画介绍-补间动画(1)