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执行