java - 修改通用图像加载器

标签 java android universal-image-loader

我正在使用这个项目universal-image-loader为了在 GridView 中显示多个图像。但我想用一些 html 修改这些图像(例如在每个图像的底部添加广告)。

我看到图像是通过在ImageAdapter的getView方法中调用imageLoader.displayImage(..)来显示的。

我不知道哪种方法更好:

  • 在 displayImage(...) 中添加一个步骤,以便使用我的图像和 html 创建一个 Web View 并将此 Web View 转换为位图?

  • 修改 ImageAdapter 的 getView 来创建 webview 并在 displayeImage() 中添加参数 webview?

  • ...

  • ...

我想我别无选择,我必须使用 WebView 。

此外,在 ImageLoader.java 的方法 displayImage() 中,我不明白图像加载的位置,我猜这是在这一行中的某个地方,但是当我查看这些方法时,我找不到/理解

    ImageSize targetSize = getImageSizeScaleTo(imageView);
    String memoryCacheKey = MemoryCacheUtil.generateKey(uri, targetSize);
    cacheKeysForImageViews.put(imageView.hashCode(), memoryCacheKey);
    Bitmap bmp = configuration.memoryCache.get(memoryCacheKey);

(如何从由 uri 和 ImageSize 构建的字符串中获得位图?图像在哪里?)

最佳答案

图像是异步加载的。所以你的代码 fragment 只是复杂逻辑的顶部。主要工作在 LoadAndDisplayTask 类中完成,但您不需要触及它。

根据您的情况,您可以创建自己的BitmapDisplayer:

  • 创建 BitmapDisplayer 实现
  • 实现位图显示(Bitmap bitmap, ImageView imageView)方法
  • 在此方法中,您可以根据需要处理传入的 Bitmap
  • 在ImageView中设置结果Bitmap并返回结果

将 BitmapDisplayer 设置为配置。

关于java - 修改通用图像加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13887534/

相关文章:

java - 使用逗号分隔大小写是不好的做法还是不赞成? Switch case 语句 Java

java - 如何在更新后第一次打开应用程序时仅启动一次 Activity ?

java - 如何从 HashMap<String, Object> 类型的 Hashmap 中删除重复项?

java - 如何在程序关闭时使复选框保持选中状态?

android - 使用 Android Universa Image Loader Library 设置图像缓存的生命周期

java - 通用图像加载器,下载更高效,数据更少。如何?

android - 如何在使用 Android Universal Image Loader 将图片显示在 View 中之前调整图片大小?

java - 使用 SIP 和 RTP 的简单聊天应用程序

java - 方案 : hdfs when building fat jar in Spark; works fine in Eclipse mars 没有文件系统

java - 尝试从共享首选项中检索数据时我遗漏了什么