首页 > 解决方案 > 如何使用毕加索将图像从 url 加载到小部件中的 imageview

问题描述

我尝试使用 Picasso 将图像加载到小部件上的图像视图中,但是当我运行图像视图返回空白时,没有图像仅显示为白色空白

空白图像

这是我的代码

internal class StackRemoteViewsFactory(private val context: Context, intent: Intent) :
    RemoteViewsService.RemoteViewsFactory {

    private val appWidgetId: Int = intent.getIntExtra(
        AppWidgetManager.EXTRA_APPWIDGET_ID,
        AppWidgetManager.INVALID_APPWIDGET_ID
    )

    ......

    override fun getViewAt(position: Int): RemoteViews {
        val rv = RemoteViews(context.packageName, R.layout.widget_favorite_item)
        GlobalScope.launch(Dispatchers.Main) {
            Picasso.get().load(data[position].image_path)
            .into(rv, R.id.img_widget_banner, intArrayOf(appWidgetId))
        }

        return rv

    }
}

标签: android-studiokotlinwidgetpicasso

解决方案


我认为问题出在您的毕加索代码中。首先检查 data[position].imagepath 返回正确的图像路径。如果您仍然有问题,请尝试仅将图像显示到一个视图中。例如你使用: rv 是一个图像视图

Picasso.get()
.load(data[position].image_path)
.into(rv)

推荐阅读