使用tranferee过程中的疑问.
xoptimal opened this issue · comments
项目已经使用Glide , 下面是配置的参数:
TransferConfig config = TransferConfig.build()
.setNowThumbnailIndex(position)
.setSourceImageList(sourceImageList)
.setOriginImageList(originImageList)
.setProgressIndicator(new ProgressBarIndicator())
.setIndexIndicator(new NumberIndexIndicator())
.setJustLoadHitImage(true)
.setImageLoader(TranGlideImageLoader.with(context))
.create();
// 实现
mTransferee.apply(PhotoPicker.getPreViewConfig(position, mGridCommodity.getData(), getItemView(grid_commodity))).show(new Transferee.OnTransfereeStateChangeListener() {
@Override
public void onShow() {
Glide.with(ShopCSActivity.this).pauseRequests();
}
@Override
public void onDismiss() {
Glide.with(ShopCSActivity.this).resumeRequests();
}
});
疑问:
我这边有2种使用场景, 一种是本地, 一种是网络图片 ....
现在传递的List是一组本地的图片, 奈何进入后一直在转圈 (按道理glide是识别的)
然后就是, 我不明白你这个所谓的内置GlideImageLoader 和 UniversalImageLoader 我默认是没导入进来这个 model, 采用的是自己的ImageLoader: TranGlideImageLoader
public class TranGlideImageLoader implements ImageLoader {
private static final String SP_FILE = "transferee";
private static final String SP_LOAD_SET = "load_set";
private Context context;
private SharedPreferences loadSharedPref;
private TranGlideImageLoader(Context context) {
this.context = context;
loadSharedPref = context.getSharedPreferences(
SP_FILE, Context.MODE_PRIVATE);
}
public static TranGlideImageLoader with(Context context) {
return new TranGlideImageLoader(context);
}
@Override
public void showSourceImage(final String srcUrl, ImageView imageView, Drawable placeholder, final SourceCallback sourceCallback) {
Glide.with(context)
.load(srcUrl)
.dontAnimate()
.placeholder(placeholder)
.into(imageView);
}
@Override
public void loadThumbnailAsync(String thumbUrl, ImageView imageView, final ThumbnailCallback callback) {
Glide.with(context)
.load(thumbUrl)
.dontAnimate()
.into(imageView);
}
@Override
public boolean isLoaded(String url) {
Set<String> loadedSet = loadSharedPref.getStringSet(SP_LOAD_SET, new HashSet<String>());
return loadedSet.contains(url);
}
@Override
public void clearCache() {
loadSharedPref.edit()
.remove(SP_LOAD_SET)
.apply();
Executors.newSingleThreadExecutor().submit(new Runnable() {
@Override
public void run() {
Glide.get(context).clearDiskCache();
Glide.get(context).clearMemory();
}
});
}
/**
* 使用 BannerImageLoader 时,需要缓存已加载完成的图片Url
*
* @param url 加载完成的图片Url
*/
public void cacheLoadedImageUrl(final String url) {
Executors.newSingleThreadExecutor().submit(new Runnable() {
@Override
public void run() {
Set<String> loadedSet = loadSharedPref.getStringSet(SP_LOAD_SET, new HashSet<String>());
if (!loadedSet.contains(url)) {
loadedSet.add(url);
loadSharedPref.edit()
.clear() // SharedPreferences 关于 putStringSet 的 bug 修复方案
.putStringSet(SP_LOAD_SET, loadedSet)
.apply();
}
}
});
}
}
以为是自定义的问题, 于是我删除了 TranGlideImageLoader , 导入了 GlideImageLoader , 转圈圈依然存在
请查看清单文件中是否对 GlideModuel 进行了正确的配置
<meta-data android:name="com.hitomi.glideloader.support.OkHttpProgressGlideModule" android:value="GlideModule" />
你说的配置, glideloader model 库 本身就已经配置好了 ~ 问题仍不未解决
加载网络图片也是一样的问题么?
没有尝试过加载网络图片目前,
我自己写了两个使用本地图片的 Demo :
GlideLocalActivity 与 UniversalLocalActivity
并没有重现你说的问题。有关细节,你可以参考我的Demo