将毕加索图像设置为 ListView 背景

Posted

技术标签:

【中文标题】将毕加索图像设置为 ListView 背景【英文标题】:Set Picasso image as ListView Background 【发布时间】:2014-08-21 04:57:07 【问题描述】:

我正在使用 Picasso 库将存储在我的服务器上的图像加载到我的 android 应用程序中。 我正在使用普通代码来执行此操作。

Picasso.with(context)
  .load(url)
  .resize(50, 50)
  .centerCrop()
  .into(imageView)

但现在我想用id = myList 将此图像设置为我的列表视图的背景。

任何帮助将不胜感激。

谢谢。 :D

【问题讨论】:

【参考方案1】:

您可以尝试覆盖 new target() 实现来设置您的视图。

Picasso.with(context).load(url).into(new Target() 
        @Override public void onSuccess(Bitmap bitmap) 
          // Set imageview bitmap here.
          // Do other stuff.
        

        @Override public void onError() 
        
      );

请注意,除非您在 Target 中实现 hashCode/equals,否则上述内容在 ListView 中不起作用。

【讨论】:

我一定会试试这个并回复你。谢谢:D 如果您这样做,Target 将被垃圾回收。直接在视图持有者或View子类上实现接口。 感谢您指出这一点,我也在研究那个界面。【参考方案2】:

实现Target 类。

伪代码:

Picasso.with(context).load(...).into(
    new Target() 

    public void onLoaded(Bitmap bitmap, Picasso.LoadedFrom from)
        mListView.setBackground(bitmap);
    

    /* ... */

    
);

请注意,此代码将无法编译,因为我不知道确切的 API,但这将进一步帮助您。

【讨论】:

我一定会试试这个并回复你。谢谢:D 如果您这样做,Target 将被垃圾回收。直接在视图持有者或View子类上实现接口。

以上是关于将毕加索图像设置为 ListView 背景的主要内容,如果未能解决你的问题,请参考以下文章

BaseAdapter 和毕加索问题

毕加索在 ListFragment 中有很多大位图

如何通过仅具有此图片URL的毕加索将图片添加到通知大图标中?

如何在不模糊或使用毕加索的情况下调整图像大小

如何在列表视图中使用毕加索

将 listview 适配器更改为回收器视图适配器