Что я хотел бы сделать:
Просто чтобы уточнить, я хочу знать, в какой ориентации находится макет в данный момент. В каком направлении находится нижняя часть макета? Это в портрете? Это в ландшафте? Пейзаж влево или вправо? и т.д.
Самое близкое, что я могу найти, это Activity.getResources (). GetConfiguration (). Direction , но он возвращает только три возможных значения. ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT или ORIENTATION_SQUARE. Там не сказано, какой тип ландшафта.
Итак, тогда я подумал: хорошо, если я смогу получить значение ориентации (например, 90, 180, 270 и т. Д.) Устройства и сравнить его с указанным выше значением конфигурации, я смог бы это выяснить. Например, если значение конфигурации было ORIENTATION_LANDSCAPE и ориентация была 270, я мог бы сказать, что это было в режиме обратного пейзажа. Однако, кажется, нет простого способа получить значение ориентации. Я мог бы реализовать OrientationEventListener , но это кажется излишним, поскольку мне просто нужно получить значение один раз в определенное время, а не постоянно.
В классе Display есть два значения, но getOrientation устарело, а getRotation доступно только для 2.2 и выше.
Теперь, даже если бы я получил это значение, все еще существует проблема устройств с естественным ландшафтом. Значение их 0 будет альбомным, а не книжным. Поэтому мне также нужен надежный способ определить, какой (ландшафтный левый, ландшафтный правый или портретный) соответствует 0.
В SO много постов об ориентации и подобных проблемах, но я не видел ни одного, который бы учитывал все эти проблемы. Кто-нибудь понял это?
Когда все сказано и сделано, я бы хотел что-то вроде Activity.getResources (). GetConfiguration (). Ориентации, но мог бы сказать, какой это ландшафтный режим.