修改universal-image-loader

时间:2012-12-14 23:12:50

标签: java android universal-image-loader

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

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

我不知道哪种方法更好:

  • 在displayImage(...)中添加一个步骤,以便使用我的图片和html创建一个webview,并在位图中转换这个webview?

  • 修改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构建的字符串中我们可以有位图?图像在哪里?)

1 个答案:

答案 0 :(得分:1)

图像是异步加载的。所以你的代码片段只是复杂逻辑的顶层。主要工作在LoadAndDisplayTask课程中完成,但您无需触摸它。

对于您的情况,您可以创建自己的BitmapDisplayer

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

将BitmapDisplayer设置为配置。