【问题标题】:How to use Display.getSize and support API level 10?如何使用 Display.getSize 并支持 API 级别 10?
【发布时间】:2012-07-25 10:33:30
【问题描述】:

我正在尝试支持 API 级别 10 及以上的设备。要检查屏幕尺寸,我有这个:

Point size = new Point();
Display display = getWindowManager().getDefaultDisplay();
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
    size.set(display.getWidth(), display.getHeight());
} else
    getWindowManager().getDefaultDisplay().getSize(size);

但现在我收到一个错误,因为即使我的最低级别为 10,我也使用 getSize()。
如何正确地做到这一点?

编辑:在应用程序的清单文件中,我有:

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="15" />

【问题讨论】:

  • 发布你的整个 Log-Cat 显示错误。
  • 这不是 Log-Cat 错误。 Eclipse 说 getSize() 调用需要 API 13,但我当前的最小目标是 10。

标签: android android-compatibility


【解决方案1】:

您可以将最低 SDK 级别设置为 10,但针对 Android 3.2 构建您的 Android 应用(如果您愿意,可以在项目属性中设置更高版本)。

只要确保如果您从比最低级别更高的 api 级别调用方法,那么首先像您一样检查设备 SDK 级别。

更多信息在这里:

http://simonvt.net/2012/02/07/what-api-level-should-i-target/

同时使用 TargetApi 注释来避免 Lint 错误:

http://tools.android.com/recent/lintapicheck

【讨论】:

  • 我就是这么做的。事实证明,我所要做的就是清理我的 eclipse 项目......编辑:没关系,它只是再次将其标记为错误。
  • 啊,也许您遇到了 Lint 错误?使用上面的@TargetApi(13) 方法,如下所示:tools.android.com/recent/lintapicheck
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多