Android FrameAnimatio和Tween补间动画

1.FrameAnimaton

逐帧动画,顾名思义,将原画一帧帧播放出来以实现动画效果。可以用于周期性动画,或者GIF。不过需要注意的一点,需要将GIF打散才能使用FrameAnimation。

对应的XML

<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android = "http://schemas.android.com/apk/res/android" android:repeatCount="infinite">
    <item android:drawable="@drawable/mosquitofly0" android:duration="100"/>
    <item android:drawable="@drawable/mosquitofly"  android:duration="100"/>
</animation-list>


后台调用

public class MosEat extends ImageView{
	public int currentX;
	public int currentY;
	public MosEat(Context context)
	{
		super(context);
	}
	public void setLocation(int top,int left)
	{
		this.setFrame(left, top, left+125, top+140);//继承父类ImageView的定义位置的方法
	}
	public void setPostion(int x,int y)
	{
		this.currentX=x;
		this.currentY=y;
	}
	@Override
	protected void onDraw(Canvas canvas)
	{
		super.onDraw(canvas);
		setFocusable(true);
	}
	
}

Anim与View整合


MosEat mosF = new MosEat(this);
AnimationDrawable anim;
mosF.setBackgroundResource(R.anim.fly);//fly对应anim中的XML文件
anim = (AnimationDrawable) mosF.getBackground();


2.TweenAnimation

补间动画,定义后系统自行完成动画。

XML

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator">//interpolator设置播放方式
    <translate android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="1500"
        android:duration="3000"/>
</set>


Anim与View整和

private Swatter FlySwa1;
private Animation anim3;
anim3 = AnimationUtils.loadAnimation(this, R.anim.swatter);
FlySwa1.startAnimation(anim3);

如果调用Animation类可以直接调用监听器。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值