我正在构建一个Android库,用于其他项目(Android 2.1及更高版本),这些项目可能会或可能不会在屏幕兼容模式下运行(http://developer.android.com/guide/practices/screen-compat-mode.html)。
有没有办法检测应用程序(在我的情况下,包含我的库的应用程序)是否以屏幕兼容模式运行?
假设我不想在宽度为< = 320dp的设备上运行,那么检查应用程序是否具有宽度< = 320dp是否可以被认为是在兼容模式下运行的良好指示? 我不喜欢它,因为文档说:
注意:目前,屏幕兼容模式仅模拟手机 屏幕宽度为320dp,因此屏幕兼容模式不是 应用于任何设备,如果您的值为android:compatibleWidthLimitDp 大于320。
答案 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);
然后比较realSizePoint
和scaledSizePoint
坐标。
它可能听起来很糟糕,我没有测试过这段代码,但它应该可以胜任。