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

2024-05-03

我在用着Glide将图像加载到ViewPager使用一个PagerAdapter。 当我使用以下方法加载图像时:

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

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

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

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

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

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

看起来像这个问题 https://stackoverflow.com/questions/7263291/viewpager-pageradapter-not-updating-the-view相关的。但那里的建议对我没有帮助。有人遇到过这个问题并有解决方案吗?


这个问题的解决方案是使用另一种目标,而不是使用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<? super Bitmap> 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);
                    }
                });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Glide 和 SimpleTarget 将图像随机加载到视图寻呼机中 的相关文章

随机推荐

  • NLTK 中的无监督 HMM 训练

    我只是想进行非常简单的无监督 HMM 训练nltk http www nltk org 考虑 import nltk trainer nltk tag hmm HiddenMarkovModelTrainer from nltk corpu
  • 如何在编写 XML 文件时忽略 DTD 验证但保留 Doctype?

    我正在开发一个系统 该系统应该能够读取任何 或至少是任何格式良好的 XML 文件 操作一些节点并将它们写回到同一个文件中 我希望我的代码尽可能通用 但我不希望 对代码中任何位置的架构 文档类型信息的硬编码引用 文档类型信息位于源文档中 我想
  • 通用接口列表

    如果我有一个带有几个实现类的通用接口 例如 public interface IDataElement
  • cocoa——让嵌套的 NSView 和 CALayers 按比例调整大小

    我的 NSWindow 的 contentView 是 NSView 子类 它还有一些其他 NSView 子类作为子视图 子视图是基于图层的 而这些图层又包含子图层 一些子层具有另外的子子层 我希望在调整窗口大小时 整个内容也按比例调整大小
  • 嵌套 forEach:未捕获类型错误:data.forEach 不是函数

    我不想使用任何 for 循环或任何常规循环 我正在尝试使用forEach但我收到错误 未捕获的类型错误 data forEach 不是函数 return falsyData map function data data forEach fu
  • ASP.NET 中的自定义角色

    我正在开发一个 ASP NET 网站 该网站使用带有自定义身份验证机制的表单身份验证 该机制设置e Authenticated以编程方式protected void Login Authenticate object sender Auth
  • 在 Mac OS X 上的某个时刻,移动光标未显示在焦点上

    我有基于 Swing 的应用程序 每当我们在组件上移动鼠标时 它都会显示移动光标图标 并通过拖动来移动该组件 我已经为此使用了代码 mycomponent setCursor Cursor getPredefinedCursor Curso
  • 安装 Canary 7 后无法打开 Android studio 4.2 Canary 8 或 9

    语境 MacOS Catalina 10 15 6Java 1 8 0 161 将 Android Studio 4 2 Canary 7 更新到 Canary 8 以及 Canary 9 后 它无法再打开 我尝试从 Android Stu
  • 非常大的 JTable、RowFilter 和额外负载

    我想请求澄清 RowFilter 的使用及其对性能的影响 我通过 include Entry 方法实现了一个过滤器 对于每一行 只需检查模型中其对应值是否设置了布尔标志 如果是 则返回 true 否则返回 false 现在 我拥有的 JTa
  • 为什么 Z3 对于很小的搜索空间来说很慢?

    我正在尝试制作一个 Z3 程序 在 Python 中 它生成执行某些任务的布尔电路 例如 添加两个 n 位数字 但性能非常糟糕 以至于对整个解决方案空间进行强力搜索将导致快一点 这是我第一次使用 Z3 所以我可能会做一些影响我性能的事情 但
  • 添加ssrs报告描述

    无论如何 我可以添加一个在执行前显示在报告中的 ssrs 报告描述吗 我用谷歌搜索 大多数人说这是不可能的 但必须有一种方法来调整它 对吗 对于仍然需要添加用户可以在执行报告之前阅读的报告描述的任何人 我在我使用的两个 SSRS 版本 20
  • 如何使用 RedirectToAction 维护 ModelState?

    如果我的操作中有错误 如何返回不同操作的结果或将用户移至不同的操作ModelState不失去我的ModelState信息 场景是 Delete操作接受来自我的 DELETE 表单的 POSTIndex动作 视图 如果有错误Delete我想将
  • python中的指数分布随机生成器(对数函数)?

    我真的需要帮助 因为我被困在代码的开头 我被要求创建一个函数来研究直方图上的指数分布 函数为 x log 1 y 是一个常数 我在代码中将其称为 lamdr 并简单地给了它 10 我给了 N 随机数的数量 10 并运行了代码 但结果和生成的
  • 将多个参数绑定到mysqli查询中

    现在我需要使用以下结构来处理将多个参数绑定到 mysqli 查询中 if words total 1 statement gt bind param s words 0 else if words total 2 statement gt
  • 在 Visual Studio 中包含一个似乎仅适用于 Linux 的网格框架?

    我使用带有 Web Essentials 扩展的 Visual Studio 2013 来完成所有 Sass Scss 工作 这很棒 我发现了一个关于网格框架的教程 我真的很想使用它 名为Susy https github com eric
  • 设置显式注释处理器

    我正在尝试将 Maven 存储库添加到我的 Android Studio 项目中 当我进行 Gradle 项目同步时 一切都很好 但是 每当我尝试构建我的 apk 时 都会收到此错误 Execution failed for task ap
  • 无法使用docx将base64编码的图像添加到word文档中

    我需要使用 python docx 模块将图像添加到 word 文档中 将base64编码的数据转换为base64字节 然后转换为图像流 现在我尝试将图像流添加到word文档中 import io from docx import Docu
  • 如何创建一个在给定范围内随机打乱数字的 int 数组[重复]

    这个问题在这里已经有答案了 基本上 假设我有一个可以容纳 10 个数字的 int 数组 这意味着我可以在每个索引中存储 0 9 每个数字只能存储一次 如果我运行下面的代码 int num new int 10 for int i 0 i l
  • SQLite3 数据库中的派生字段

    各位晚上好 今天想问一个关于SQLite3中的派生字段 也称为计算字段 的问题 利用存储在我的数据库中的两个值 重量 和 距离 我知道可以利用它们来执行计算 以利用需要这两个值的公式返回我想要的值 但是我想知道是否有一种方法可以通过 SQL
  • 使用 Glide 和 SimpleTarget 将图像随机加载到视图寻呼机中

    我在用着Glide将图像加载到ViewPager使用一个PagerAdapter 当我使用以下方法加载图像时 Glide with mContext load mImage placeholder R drawable placeholde