自定义ImageView,超简单的帧动画,可直接使用

/**
 * Created by vV on 2017/3/2.
 *
 *   播放帧动画的ImageView
 */

public class AnimImageView extends ImageView {
    private long intervalTime = 1000;
    private int order = 0;
    private int[] imgs = new int[]{};
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if (order == imgs.length){
                order = 0;
            }
            setImageResource(imgs[order]);
            if (imgs.length <= 1){
                handler.removeCallbacks(r);
            }
            order++;
        }
    };
    private Runnable r = new Runnable() {
        @Override
        public void run() {
            handler.postDelayed(r,intervalTime);
            handler.sendEmptyMessage(0);
        }
    };

    /**
     *
     * @param context
     */
    public AnimImageView(Context context) {
        super(context);
    }
    public AnimImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public AnimImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    /**
     * 设置每帧间隔时间
     * @param time
     * @return
     */
    public AnimImageView setIntervalTime(long time){
        intervalTime = time;
        return this;
    }

    /**
     * 设置图片源,用于切换的图片数组
     * @param images  Resource Id
     * @return
     */
    public AnimImageView setImages(int[] images){
        imgs = images;
        return this;
    }

    /**
     * 开始动画
     */
    public void startAnim(){
        handler.post(r);
    }

    /**
     * 暂停动画
     */
    public void stopAnim(){
        handler.removeCallbacks(r);
    }
}


使用很简单,将动画帧图片按顺序存放在一个int[],调用

setImages(int[])//设置动画源图片
setIntervalTime(time);//设置每帧切换时间
startAnim()//开始动画
 
 
stopAnim()//结束动画
xml布局
 
 
<com.fdstech.vpan.vpan3.customview.AnimImageView
    android:id="@+id/ivAnim"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/defaultImg"
    />

猜你喜欢

转载自blog.csdn.net/qq_31164261/article/details/60866359
今日推荐