标签:动画 imageview 安卓 android animation
一、概述
Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。
ViewAnimation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。
Drawable Animation就是所谓的帧动画,一般作为Drawable的背景使用。
PropertyAnimation产生的原因,你希望View有一个颜色的切换动画;你希望可以使用3D旋转动画;你希望当动画停止时,View的位置就是当前的位置;这些View Animation都无法做到。
二、使用方法
(1)View Animation(一个组件的动画)
a.采用定义xml动画,可以在一个set资源里面定义多种效果,使用这种方法时要注意里面的坐标的使用,是以当前组件的左上边为原点。可以使用X%p这种定义与父布局的关系。在代码中加载时用AnimationUtils.loadAnimation(context, id);的方法得到动画并用组件的huoJianImageView.setAnimation();方法设置动画,启动动画时可以用得到的animation启动,也可以用组件的start的方法。
b.采用java代码生成动画,TranslateAnimation,AlphaAnimation。生成动画以后的设置方法如前。
(2)Drawable Animation (连续变化的动画)
在Drawable里面定义animation-list然后作为一个组件的背景,在java代码中得到
AnimationDrawable animationDrawable = (AnimationDrawable) bullImageView.getBackground();
然后启动 animationDrawable.start()
一般使用这种方法需要的注意的是控制该动画的最后一帧播放完毕,则组件消失。
可自定义一个ImageView代码如下所示:
package com.animal.bull;
import java.lang.reflect.Field;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
public class MyImage extends ImageView {
AnimationDrawable animationDrawable;
int totalFrame;
Field field;
public void setAnimationDrawable(AnimationDrawable animationDrawable) {
this.animationDrawable = animationDrawable;
totalFrame = animationDrawable.getNumberOfFrames();
}
public MyImage(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
try {
if (animationDrawable != null) {
field = AnimationDrawable.class.getDeclaredField("mCurFrame");
field.setAccessible(true);
int r = field.getInt(animationDrawable);
if (r == totalFrame - 1) {
setVisibility(View.INVISIBLE);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.onDraw(canvas);
}
}
标签:动画 imageview 安卓 android animation
原文地址:http://blog.csdn.net/scboyhj__/article/details/41842269