跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

修复头条屏幕适配方案导致的两次获取尺寸不一问题

精选回复

发布于

所谓头条屏幕方案就是修改了DisplayMetrics类,让设备的dp宽强行按设计稿来,所以DisplayMetrics获取的一些参数都是缩放过的,并不是真实的。在一些情况下会出现两次获取结果不一样,就产生了bug。由于项目已经用了这种方案(个人不太倾向使用),所以解决这个问题。目前出现的现象就是第一次打开Splash是未缩放的,第二次打开又是缩放的,所以我用下面这个工具类让尺寸dp等参数恢复成真实的。

object DisplayMetricsUtil {

    @JvmStatic
    fun applyRealMetrics(activity: Activity) {
        //获取真实dp参数
        val dm = DisplayMetrics()
        activity.windowManager.apply {
            defaultDisplay.getRealMetrics(dm)
        }
        //应用到activity
        val displayMetrics = activity.resources.displayMetrics
        displayMetrics.density = dm.density
        displayMetrics.scaledDensity = dm.scaledDensity
        displayMetrics.widthPixels = dm.widthPixels
        displayMetrics.heightPixels = dm.heightPixels
        displayMetrics.xdpi = dm.xdpi
        displayMetrics.ydpi = dm.ydpi
        displayMetrics.densityDpi = dm.densityDpi
    }
}

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。