当前位置:  开发笔记 > Android > 正文

图像使用Glide和SimpleTarget随机加载到视图寻呼机中

如何解决《图像使用Glide和SimpleTarget随机加载到视图寻呼机中》经验,为你挑选了1个好方法。

我正在使用Glide将图像加载到ViewPager使用中PagerAdapter.当我使用以下方法加载图像时:

Glide.with(mContext).load(mImage).placeholder(R.drawable.placeholder).into(mImageView);

一切正常,但现在我需要从滑动中获取位图,并在加载以备将来编辑时将其存储在地图中,因此我将此方法切换为以下方法:

Glide.with(mContext).load(mImage).asBitmap().placeholder(R.drawable.placeholder).into(new SimpleTarget() {

                @Override
                public void onLoadStarted(Drawable placeholder) {
                    super.onLoadStarted(placeholder);
                    mImageView.setImageDrawable(placeholder);
                }

                @Override
                public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) {
                    if (bitmap != null) {
                        mImageView.setImageBitmap(bitmap);
                    }
                    mBitmapMap.put(position, bitmap);
                    mInterface.onImageLoaded(position, bitmap);
                }
            });

但结果是图像并不总是显示出来.我认为这与滑动加载图像异步这一事实有关,并且在某些时候它在instatiateItem方法已经完成运行时返回.

看起来这个问题是相关的.但那里的建议并没有帮助我.有人遇到过这个问题并且有解决方案吗?



1> Emil Adz..:

这个问题的解决方案是使用另一种目标,而不是使用SimpleTarget我在编写问题时使用的对象,我将其替换为BitmapImageViewTarget对象,我猜测异步处理图像更好.所以我用它的最终代码是:

Glide.with(BaseApplication.getInstance()).load(newContent).asBitmap().placeholder(R.drawable.ic_action_picture).into(new BitmapImageViewTarget(mIvContent) {
                    @Override
                    public void onLoadStarted(Drawable placeholder) {
                        super.onLoadStarted(placeholder);
                        mIvContent.setImageDrawable(placeholder);
                    }

                    @Override
                    public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
                        super.onResourceReady(resource, glideAnimation);
                        mBitmapMap.put(position, resource);
                        progressBar.setVisibility(View.INVISIBLE);
                        mIvContent.setImageBitmap(resource);
                    }

                    @Override
                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
                        super.onLoadFailed(e, errorDrawable);
                        progressBar.setVisibility(View.INVISIBLE);
                    }
                });

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有