defaultDisplay 的吸气剂:显示!已弃用。在 Java 中已弃用

新手上路,请多包涵

我需要屏幕的宽度。但最近发现 Android defaultDisplay deprecated 消息:

defaultDisplay 的吸气剂:显示!已弃用。在 Java 中已弃用

代码:

 val displayMetrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(displayMetrics)
return displayMetrics.widthPixels

请提出替代方案。

原文由 Saswata 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 901
1 个回答

defaultDisplay 在 API 级别 30 (Android R) 及更高版本中被标记为已弃用。这意味着如果您的最低 SDK 配置低于 API 级别 30,则您应该同时使用旧的弃用代码和新的推荐代码来实现。

正确解决问题后,您可以使用 @Suppress(“DEPRECATION”) 来抑制警告

示例:Kotlin 解决方案

    val outMetrics = DisplayMetrics()

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
        val display = activity.display
        display?.getRealMetrics(outMetrics)
    } else {
        @Suppress("DEPRECATION")
        val display = activity.windowManager.defaultDisplay
        @Suppress("DEPRECATION")
        display.getMetrics(outMetrics)
    }

原文由 Cristiano Correia 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题