在ViewModel中从图库中选择照片可以通过以下步骤实现:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
fun getPhotosFromGallery(context: Context): List<Uri> {
val photos = mutableListOf<Uri>()
val projection = arrayOf(MediaStore.Images.Media._ID)
val sortOrder = "${MediaStore.Images.Media.DATE_ADDED} DESC"
val selection = "${MediaStore.Images.Media.MIME_TYPE} = ?"
val selectionArgs = arrayOf("image/jpeg", "image/png")
val cursor = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
sortOrder
)
cursor?.use {
val idColumn = it.getColumnIndexOrThrow(MediaStore.Images.Media._ID)
while (it.moveToNext()) {
val id = it.getLong(idColumn)
val contentUri = ContentUris.withAppendedId(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
id
)
photos.add(contentUri)
}
}
return photos
}
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
val photos = viewModel.getPhotosFromGallery(requireContext())
这样,你就可以在ViewModel中从图库中选择照片了。注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
请注意,以上答案仅供参考,具体实现方式可能因开发环境、技术栈和需求而异。
没有搜到相关的结果
领取专属 10元无门槛券
手把手带您无忧上云