标签:动画 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