2

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

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

假设我不想在宽度 <= 320dp 的设备上运行,那么检查应用程序是否具有宽度 <= 320dp 是否可以很好地表明它在兼容模式下运行?正如文档所说,我真的不喜欢它:

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

4

1 回答 1

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坐标。这可能听起来很老套,我还没有测试过这段代码,但它应该可以完成这项工作。

于 2013-07-24T09:43:56.097 回答