Android 从ImageView复制可绘制

Android 从ImageView复制可绘制,android,bitmap,kotlin,drawable,Android,Bitmap,Kotlin,Drawable,我正在制作一个Android应用程序,该应用程序的一部分调用了一个谷歌API来获取特定位置的照片。这些照片将是列表的一部分,我希望这样,一旦我调用API并下载照片,我就可以将其保存在本地,稍后再继续,而不是调用API。我的代码粘贴在下面 fun placePhotoCall(ref : String, view : ImageView, index : Int) { if(places[index].image == null) { Glide.with(this).lo

我正在制作一个Android应用程序,该应用程序的一部分调用了一个谷歌API来获取特定位置的照片。这些照片将是列表的一部分,我希望这样,一旦我调用API并下载照片,我就可以将其保存在本地,稍后再继续,而不是调用API。我的代码粘贴在下面

fun placePhotoCall(ref : String, view : ImageView, index : Int) {
    if(places[index].image == null) {
        Glide.with(this).load(createPhotosRequestURL(ref)).into(view)
        places[index].image = view.image
    }
    else {
        view.setImageDrawable(places[index].image)
    }
}
此函数调用API,下载照片并将其存储在ImageView中。我想从ImageView中取出可绘制图像,并将其存储在我创建的对象中,但是无论我尝试什么,图像属性都保持为空


提前感谢。

不要存储可绘制的数组,这样做数据太多。只需存储用于加载该图像的ref字符串数组,并在需要的任何位置使用ref字符串重新加载图像。Glide软件包已经缓存了图像,因此您只需将ref字符串传递给它,它只会在必要时再次下载图像。

此线程显示了如何完成所描述的内容。。。但是,如果您正在寻找一种简单的缓存机制,Glide/Picasso会在幕后为您提供这种机制。