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的奇怪行为,确保壁纸被正确地缩放和设置。

相关内容

热门资讯

黑科技辅助!wepoker辅助... 黑科技辅助!wepoker辅助软件视频,hhpoker软件靠谱吗,积累教程(有挂工具)1、下载好we...
据权威媒体报道!aapoker... 据权威媒体报道!aapoker透视脚本,pokerworld辅助器,方案教程(有挂实锤)1、不需要A...
黑科技辅助!wepoker手机... 您好,wepoker手机版透视脚本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【4852750...
据报道!werplan脚本,w... 据报道!werplan脚本,wepoker免费钻石,练习教程(有挂秘诀)1、操作简单,无需wepok...
最终!impoker辅助,约局... 最终!impoker辅助,约局吧德州透视,大纲教程(有挂透明挂)约局吧德州透视是不是有人用挂微扑克w...
这一问题亟待解决!we-pok... 这一问题亟待解决!we-poker正规吗,wpk透视是真的假的,妙招教程(有挂方略)1、下载好wpk...
第三方辅助!wepoker透视... 第三方辅助!wepoker透视脚本苹果版,wepoker轻量版透视方法,窍门教程(有挂秘诀)1、上手...
现就发布提示!德扑圈透视,aa... 现就发布提示!德扑圈透视,aa poker辅助包,指南教程(有挂详情)1、现就发布提示!德扑圈透视,...
此事迅速冲上热搜!hhpoke... 此事迅速冲上热搜!hhpoker软件可以玩吗,wpk作弊最怕三个东西,窍门教程(有挂规律)wpk作弊...
此事迅速冲上热搜!aapoke... 此事迅速冲上热搜!aapoker辅助器是真的吗,hhpoker视频巡查真的假的,绝活教程(发现有挂)...