0

Есть ли способ определить программную ориентацию начального экрана? Я поиграл следующее:Как определить ориентацию главного экрана

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, если на портрете). Но если экран находится в ландшафте, а виджет обновляется в фоновом режиме, он становится шириной и высотой неправильным образом, потому что домашний экран будет фактически на портрете.

Любой способ надежно ориентироваться в главном экране?

ответ

2

Есть ли способ определить программную ориентацию начального экрана?

№ Автор исходного экрана может делать все, что хочет автор. Насколько вам известно, все отображается по диагонали. И, поскольку есть сотни, возможно, тысяч, реализаций на главном экране, поведение на любом данном устройстве будет неопределенным.

+0

Не кажется особенно удовлетворительным. Любая идея о том, как определить wxh виджета для устройства, которое может иметь рабочий стол в любой ориентации? У меня это работает нормально, если на главном экране портрет, но он борется, когда рабочий стол может быть ландшафтом. Должно быть, конечно, быть способ разработки ширины и высоты виджета? – drmrbrewer

+0

@drmrbrewer: спросите пользователя, заблокирован ли домашний экран на портрете, заблокирован ли пейзаж или свободно вращается. Или создайте пользовательский интерфейс виджета приложения, чтобы ориентация на начальном экране не имела значения. Вы уже должны иметь гибкость при работе с шириной или высотой в пределах диапазона - вы можете расширить его для поддержки всего диапазона (т. Е. Меньшего из двух минимумов и большего из двух максимумов). – CommonsWare

+0

смешно, я только что пришел к такому же выводу, без какого-либо автоматического способа определения этой информации ... собирался реализовать пользовательскую опцию, чтобы они могли указать. Позор, что эта информация недоступна программно. Благодарю. – drmrbrewer

Смежные вопросы