Hitomis / transferee

[暂停维护]一个帮助您完成从缩略视图到原视图无缝过渡转变的神奇框架

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用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 :
GlideLocalActivityUniversalLocalActivity
并没有重现你说的问题。有关细节,你可以参考我的Demo