xUtils源码阅读(3)-ImageManagerImpl

来源:互联网 发布:c语言返回值什么意思 编辑:程序博客网 时间:2024/05/20 03:04

ImageManager的实现类。


源码:

/** * Created by wyouflf on 15/10/9. */public final class ImageManagerImpl implements ImageManager {    private static final Object lock = new Object();    private static volatile ImageManagerImpl instance;    private ImageManagerImpl() {    }    public static void registerInstance() {//单例模式        if (instance == null) {            synchronized (lock) {                if (instance == null) {                    instance = new ImageManagerImpl();                }            }        }        x.Ext.setImageManager(instance);//自己注册到x.Ext中    }    @Override    public void bind(final ImageView view, final String url) {//任务交给x.Ext的Task处理,具体采用ImageLoader进行        x.task().autoPost(new Runnable() {            @Override            public void run() {                ImageLoader.doBind(view, url, null, null);            }        });    }    @Override    public void bind(final ImageView view, final String url, final ImageOptions options) {        x.task().autoPost(new Runnable() {            @Override            public void run() {                ImageLoader.doBind(view, url, options, null);            }        });    }    @Override    public void bind(final ImageView view, final String url, final Callback.CommonCallback<Drawable> callback) {        x.task().autoPost(new Runnable() {            @Override            public void run() {                ImageLoader.doBind(view, url, null, callback);            }        });    }    @Override    public void bind(final ImageView view, final String url, final ImageOptions options, final Callback.CommonCallback<Drawable> callback) {        x.task().autoPost(new Runnable() {            @Override            public void run() {                ImageLoader.doBind(view, url, options, callback);            }        });    }    @Override    public Callback.Cancelable loadDrawable(String url, ImageOptions options, Callback.CommonCallback<Drawable> callback) {        return ImageLoader.doLoadDrawable(url, options, callback);    }    @Override    public Callback.Cancelable loadFile(String url, ImageOptions options, Callback.CacheCallback<File> callback) {        return ImageLoader.doLoadFile(url, options, callback);    }    @Override    public void clearMemCache() {        ImageLoader.clearMemCache();    }    @Override    public void clearCacheFiles() {        ImageLoader.clearCacheFiles();        ImageDecoder.clearCacheFiles();    }}

实现的核心有下面几点:

1、单例模式

2、主动注册

3、任务由task处理

4、具体执行有imageLoader执行

0 0
原创粉丝点击