实现动画图片效果

来源:互联网 发布:vb数据库编程教程 编辑:程序博客网 时间:2024/04/29 08:40
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;


import android.R.integer;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.ImageView;


public class MyImageView extends ImageView {


   public boolean bSwitch = false;
   private Bitmap bitmap;
   Vector<Bitmap> vBmp;
   int index;
   int i = 0;
   long stime ;
   private Timer timer = null;
   private int width = 30;
   private int height = 30;
   public MyImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
   
   }
   public MyImageView(Context context,Vector<Bitmap> vBmp) {
super(context);
this.vBmp =vBmp;

}

public void setMyImageBitmap(Bitmap bitmap){
this.bitmap = bitmap;
setCycleBmp(false);
if(null != bitmap){
this.postInvalidate();
}
}
public void setCycleBmp(boolean flag){
if(flag == this.bSwitch) return;
this.bSwitch = flag;
if(this.bSwitch){
//启动计时器
StartTimer();
}else{
//关闭计时器
closeTimer();
}
}

private void StartTimer(){
timer = new Timer();
timer.schedule(new MyTask(), 50, 150);
}
private void closeTimer(){
timer.cancel();
}

@Override
protected void onDraw(Canvas canvas) {
if(this.bSwitch){
canvas.drawBitmap(vBmp.get(index),this.getWidth()/2-this.width,this.getHeight()/2-this.height, null);

}else if(null != bitmap){
canvas.drawBitmap(bitmap, 0, 0,null);
}
}
class MyTask extends TimerTask {


@Override
public void run() {

if(++index == MyImageView.this.vBmp.size())
index=0;
MyImageView.this.postInvalidate();
}

}


}
原创粉丝点击