【发布时间】:2021-12-23 01:24:01
【问题描述】:
我正在尝试从音乐中获取专辑封面 uri(如果为 null/空,则在应用可绘制中显示我自己的)
但我明白了:
java.lang.NullPointerException: decodeResource(context.r…rces, R.drawable.ic_logo) 不能为空
Utility.kt
fun getAlbumArtBitmap(context: Context, albumId: Long): Bitmap {
try {
return when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.P -> {
val source = ImageDecoder.createSource(
context.contentResolver,
getAlbumArtUri(albumId)
)
ImageDecoder.decodeBitmap(source)
}
else -> MediaStore.Images.Media.getBitmap(
context.contentResolver,
getAlbumArtUri(albumId)
)
}
} catch (e: FileNotFoundException) {
Timber.e(e)
} catch (e: UnsupportedOperationException) {
Timber.e(e)
}
return BitmapFactory.decodeResource(context.resources, R.drawable.ic_logo)
}
drawable(R.drawable.ic_logo)是一个xml矢量drawable(svg导入),位于drawable文件夹中
Player.kt
val artwork = getAlbumArtBitmap(context, song.albumId)
putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, artwork)
【问题讨论】:
标签: java android kotlin bitmap