android - API 29 已弃用“getBitmap”。还有其他代码吗?
问题描述
我onActivityResult
的不工作,因为getBitmap
已弃用,任何替代代码来实现这一点?
这是需要更改的代码,有什么建议吗?
val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, selectedPhotoUri)
被getBitmap
划过并说它已被弃用
解决方案
这对我有用,
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
val selectedPhotoUri = data.data
try {
selectedPhotoUri?.let {
if(Build.VERSION.SDK_INT < 28) {
val bitmap = MediaStore.Images.Media.getBitmap(
this.contentResolver,
selectedPhotoUri
)
imageView.setImageBitmap(bitmap)
} else {
val source = ImageDecoder.createSource(this.contentResolver, selectedPhotoUri)
val bitmap = ImageDecoder.decodeBitmap(source)
imageView.setImageBitmap(bitmap)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
推荐阅读
- symfony - 使用 Symfony 2.8 框架连接动态实体收集器中的表
- reactjs - shouldComponentUpdate 在 reactJS 中不起作用
- typescript - 在 Typescript 中正确处理来自 REST api 调用的枚举
- c# - c# 来自接口(NServiceBus)的构造函数操作
- javascript - 无法从 reactjs 中的 webpack 加载器加载 html
- ios - 模型类数据快速访问所有视图控制器
- java - 从数据库中删除一行
- python - Postgresql 是否有可能对二进制数据执行立方体功能?
- woocommerce - Woocommerce - 如何在结帐视图上显示运输方式(并更改它们)?
- flutter - 为什么没有 ValueNotifierBuilder?