我正在使用这个项目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/