Android 如何在Imageview src中使用livedata?

Android 如何在Imageview src中使用livedata?,android,kotlin,mvvm,imageview,android-livedata,Android,Kotlin,Mvvm,Imageview,Android Livedata,我的viewmodel: init{ updateWallPaper() } private var _wallpaper = MutableLiveData<Bitmap>() val wallpaper: LiveData<Bitmap> get() = _wallpaper fun updateWallPaper() { val file = appCtx.getWallpaperFile() if(fi

我的viewmodel:

init{
  updateWallPaper()
}

private var _wallpaper = MutableLiveData<Bitmap>()
    val wallpaper: LiveData<Bitmap>
        get() = _wallpaper
fun updateWallPaper() {
        val file = appCtx.getWallpaperFile()
        if(file.exists()) {
            _wallpaper.value = BitmapFactory.decodeFile(file.absolutePath)
        }
    }
我想做的就是在其他地方更改这个图像,图像src会实时更改

我尝试了很多方法,但都失败了,我想知道如何将实时数据应用到src

在Resume上操作是正常的,但是每次我回到家里,这个方法都会运行,所以我认为这是对内存的浪费,所以我打算将它改为绑定实时数据。

使用
LiveData

    private var _wallpaper = MutableLiveData<Drawable>()
    val wallpaper: LiveData<Drawable>
        get() = _wallpaper

    fun updateWallPaper() {
        val file = appCtx.getWallpaperFile()
        if(file.exists()) {
            _wallpaper.value = BitmapDrawable(resources, BitmapFactory.decodeFile(file.absolutePath))
        }
    }

@你想去哪里就去哪里!
    private var _wallpaper = MutableLiveData<Drawable>()
    val wallpaper: LiveData<Drawable>
        get() = _wallpaper

    fun updateWallPaper() {
        val file = appCtx.getWallpaperFile()
        if(file.exists()) {
            _wallpaper.value = BitmapDrawable(resources, BitmapFactory.decodeFile(file.absolutePath))
        }
    }
<ImageView
            android:id="@+id/imageview_main_home_img"
            android:layout_width="match_parent"
            android:layout_height="324dp"
            android:scaleType="fitXY"
            android:src="@drawable/sample_image"
            app:layout_constraintTop_toTopOf="parent"
            app:imageDrawable="@{homeViewModel.wallpaper }" />