有没有办法以编程方式确定主屏幕的方向?我玩弄了以下内容:
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int rotation = windowManager.getDefaultDisplay().getRotation();
和
Resources r = context.getResources();
int orientation = r.getConfiguration().orientation;
但两者似乎都不是特别合适,因为据我所知,即使屏幕方向正在改变,主屏幕也可能被锁定在特定方向。最值得注意的是,类似手机的设备似乎被锁定在纵向,而平板电脑屏幕似乎有旋转的主屏幕,但也可以锁定。
基本上我需要这些信息才能正确更新主屏幕小部件(如果是纵向的话,使用例如OPTION_APPWIDGET_MIN_WIDTH
和OPTION_APPWIDGET_MAX_HEIGHT
确定其宽度和高度)。但是如果在小部件在后台更新时屏幕恰好处于横向状态,那么它的宽度和高度是错误的,因为主屏幕实际上是纵向的。
是否可以可靠地获得主屏幕方向?
答案 0 :(得分:2)
有没有办法以编程方式确定主屏幕的方向?
没有。主屏幕的作者可以做任何作者想要的事情。如你所知,事情是在对角线上显示的。而且,由于有数百甚至数千个主屏幕实现,因此任何给定设备上的行为都是不确定的。