Android 如何在Imageview src中使用livedata?
我的viewmodel: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
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 }" />