使用Glide将图像URL加载到Kotlin AppWidget中

时间:2018-04-17 16:06:19

标签: android kotlin android-glide

我在互联网上搜索了一个如何在Kotlin中加载远程图像的示例。有很多Kotlin示例使用Glide和普通的ImageView,但AppWidget中没有任何与远程ImageView相关的内容。

目前最好的资源就在这里,但它是在Java中: https://futurestud.io/tutorials/glide-loading-images-innnto-notifications-and-appwidgets

我在下面添加了Kotlin翻译...

1 个答案:

答案 0 :(得分:1)

class DeviceIntelWidget : AppWidgetProvider() {
    override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager?, 
    appWidgetIds: IntArray) {
        ...
        val remoteViews = RemoteViews(context.packageName, R.layout.widget)
        val awt: AppWidgetTarget = object : AppWidgetTarget(context.applicationContext, R.id.img, remoteViews, *appWidgetIds) {
            override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
                super.onResourceReady(resource, transition)
            }
        };    
        Glide.with(context.applicationContext).asBitmap().load("https://si.com/img.jpg").into(awt)
        ...
    }
}

注意:

  • AppWidgetTarget用于通过RemoteViews在AppWidget的ImageView中显示下载的位图
  • 调用load来加载位图并在onResourceReady
  • 中进行任何后期处理
  • 实施'com.github.bumptech.glide:glide:4.2.0'强制以NoClassDefFoundError: android.support.v4.util.ArrayMap
  • 结束
  • 更新到最新版本:4.7.1修复了问题