Android onDraw触发ImageView的setImageBitmap实现动画,可见时执行动画,不可见时自动停止动画
一个简单的小例子,这个例子首先从assets读取出若干张图片作为Bitmap资源,然后在onDraw里面每个25ms触发一次ImageView的setImageBitmap,这样做以25ms作为周期,循环的每隔25ms重新设置ImageView的图片源,达到动画效果,这样做的好处是,由于onDraw只在可见状态下重绘才调用,如果当前的自定义的ImageView不可见,自动就停止执行动画,比较节能。
package zhangphil.test;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.util.Log;
import java.io.InputStream;
public class LoadingImageView extends AppCo