Android12+中WallpaperManager的奇怪行为
创始人
2024-09-30 19:00:09
0

Android 12+ 在使用WallpaperManager设置壁纸时可能会出现奇怪的行为,例如壁纸被拉伸或放大。

为了解决这个问题,我们需要在设置壁纸之前先获取壁纸的建议大小,然后将其缩放到设备的分辨率大小。

以下是一个示例代码,用于将壁纸设置为设备的分辨率大小:

val wallpaperManager = WallpaperManager.getInstance(context)
val displayMetrics = context.resources.displayMetrics
val screenWidth = displayMetrics.widthPixels
val screenHeight = displayMetrics.heightPixels

val wallpaperDrawable = wallpaperManager.drawable
val wallpaperWidth = wallpaperDrawable.intrinsicWidth
val wallpaperHeight = wallpaperDrawable.intrinsicHeight

val scaleFactor = max(wallpaperWidth / screenWidth, wallpaperHeight / screenHeight)

val scaledWidth = wallpaperWidth / scaleFactor
val scaledHeight = wallpaperHeight / scaleFactor

val scaledWallpaper = Bitmap.createScaledBitmap((wallpaperDrawable as BitmapDrawable).bitmap,
    scaledWidth, scaledHeight, true)

wallpaperManager.setBitmap(scaledWallpaper)

如上所示,我们首先获取设备的分辨率,然后获取壁纸的原始大小。接下来,我们计算一个比例因子,使得壁纸可以被缩放到设备分辨率的大小。然后,我们使用比例因子来缩放壁纸,并使用WallpaperManager设置缩放后的壁纸。

通过这种方式,我们能够在Android 12+上消除WallpaperManager的奇怪行为,确保壁纸被正确地缩放和设置。

相关内容

热门资讯

透视游戏!德普之星辅助工具如何... 透视游戏!德普之星辅助工具如何设置,aapoker插件,妙招教程(果然真的有挂)-哔哩哔哩1、德普之...
透视德州版!wepoker辅助... 透视德州版!wepoker辅助软件视频(透视)开挂辅助工具(总是真的有挂)-哔哩哔哩亲,关键说明,w...
透视苹果版!德普之星透视软件免... 您好,德普之星透视软件免费入口官网这款游戏可以开挂的,确实是有挂的,需要了解加去威信【4852750...
透视黑科技!wepoker如何... 透视黑科技!wepoker如何设置透视(透视)开挂辅助攻略(真是存在有挂)-哔哩哔哩1、首先打开we...
透视有挂!wepoker辅助器... 透视有挂!wepoker辅助器下载,wepoker私人局辅助,大纲教程(一贯真的是有挂)-哔哩哔哩1...
透视线上!hhpoker真的假... 透视线上!hhpoker真的假的(透视)开挂辅助神器(都是是有挂)-哔哩哔哩1、进入到hhpoker...
透视总结!德普之星透视免费(透... 透视总结!德普之星透视免费(透视)开挂辅助器(切实真的是有挂)-哔哩哔哩1、上手简单,内置详细流程视...
透视智能ai!智星菠萝有挂吗,... 透视智能ai!智星菠萝有挂吗,wepoker辅助器安装包定制,烘培教程(果然存在有挂)-哔哩哔哩1、...
透视靠谱!aapoker能控制... 透视靠谱!aapoker能控制牌吗(透视)开挂辅助脚本(总是是真的挂)-哔哩哔哩aapoker能控制...
辅助透视!hhpoker透视脚... 辅助透视!hhpoker透视脚本下载,pokemmo手机版透视脚本,窍门教程(其实是有挂)-哔哩哔哩...