如何检测Android应用程序是否在屏幕兼容模式下运行?

时间:2013-07-24 08:50:23

标签: java android

我正在构建一个Android库,用于其他项目(Android 2.1及更高版本),这些项目可能会或可能不会在屏幕兼容模式下运行(http://developer.android.com/guide/practices/screen-compat-mode.html)。

有没有办法检测应用程序(在我的情况下,包含我的库的应用程序)是否以屏幕兼容模式运行?

假设我不想在宽度为< = 320dp的设备上运行,那么检查应用程序是否具有宽度< = 320dp是否可以被认为是在兼容模式下运行的良好指示? 我不喜欢它,因为文档说:

  

注意:目前,屏幕兼容模式仅模拟手机   屏幕宽度为320dp,因此屏幕兼容模式不是   应用于任何设备,如果您的值为android:compatibleWidthLimitDp   大于320。

1 个答案:

答案 0 :(得分:0)

API 17的可行解决方案:

DisplayMetrics metrics = new DisplayMetrics();
WindowManager manager = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);

Point realSizePoint = new Point();
manager.getRealSize(realSizePoint);

Point scaledSizePoint = new Point();
manager.getSize(scaledSizePoint);

然后比较realSizePointscaledSizePoint坐标。 它可能听起来很糟糕,我没有测试过这段代码,但它应该可以胜任。