Я пытаюсь заблокировать телефон до портрета и планшета до пейзажа. Обычно я использую AndroidManifest.xml - android: screenOrientation = "portrait" Но как я могу настроить ориентацию на планшет/телефон по-разному? Спасибо!Android - Как заблокировать ориентацию для другого устройства?
ответ
Лучшим решением является загрузка одного параметра из папки res из определенного значения. Поэтому, если ваше приложение работает на планшете, плотность экрана должна быть большой или равна 600dp.
В папке: Рез/значение-sw600dp/создать XML с парами:
<resources>
<bool name="isTablet">true</bool>
</resources>
В Резе папки/значение/создать XML с PARAM
<resources>
<bool name="isTablet">false</bool>
</resources>
После этого Вы сможете проверить, если приложение работает на планшете или телефоне, используя этот код:
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (tabletSize) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Источник из:
https://stackoverflow.com/a/9308284/619673
https://developer.android.com/guide/practices/screens_support.html
Итак, нет способа установить его в xml? – user2062024
значения из папки res могут быть использованы после запуска приложения, имхо не раньше. Благодаря многочисленным папкам имен в папке res i.e values-sw600dp или values-landscape Вы можете обрабатывать только определенную ситуацию. Ответ, который я дал вам, является imho лучшим и безопасным. – deadfish
Сначала проверьте, является ли устройство смартфон или планшет, то вы можете установить ориентацию вашей деятельности, используя ниже код
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
или
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
и вы можете проверить Determine if the device is a smartphone or tablet?
Первый вы можете определить, работает ли ваше приложение на смартфоне или планшете, см. следующие answer
Теперь вы можете заблокировать ориентацию, используя следующий код:
If(isTablet)
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
else
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Использование Java-код. В классе Java, который вы хотите сделать специальную ориентацию, используйте этот код:
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_XLARGE) {
// on a X large screen device ...
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
// on a large screen device ...
// do everythings you want to do ...
} else {
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
и в использовании фрагмента «getActivity()» вместо «это». А для удобства просмотра с устройством используйте этот код:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
Возможно, сработало. Удачи.
- 1. Как глобально заблокировать ориентацию экрана Android-устройства
- 2. Как заблокировать ориентацию экрана
- 3. Как заблокировать ориентацию UIAlertController?
- 4. Как заблокировать ориентацию для некоторых размеров экрана?
- 5. Как получить ориентацию устройства
- 6. Как заблокировать ориентацию экрана только для телефонов?
- 7. Как заблокировать ориентацию экрана андроида
- 8. Как «заблокировать» ориентацию вида во время поворота устройства
- 9. Как заблокировать ориентацию экрана для ландшафта для Android?
- 10. Хотите заблокировать ориентацию для приложения
- 11. Как заблокировать ориентацию в OpenPlug (/ flex)?
- 12. Как заблокировать ориентацию устройства в iOS 7 и iOS 8
- 13. Android: Получить текущую ориентацию устройства
- 14. Как изменить ориентацию устройства в Android?
- 15. Как проверить ориентацию устройства?
- 16. Как получить ориентацию устройства в Android?
- 17. Как заблокировать ориентацию электронной книги
- 18. Как заблокировать ориентацию для приложения в метеоре
- 19. Невозможно заблокировать ориентацию для 1 VC
- 20. Заблокировать ориентацию экрана в классе View - Android
- 21. Swift 3, как заблокировать ориентацию
- 22. Android: Как настроить ориентацию устройства по типу устройства (планшет, телефон)?
- 23. заблокировать ориентацию viewController в swift
- 24. Android Получить ориентацию устройства с помощью сенсоров
- 25. Как проверить ориентацию Auto Rotation в Unity для Android-устройства?
- 26. Я хочу заблокировать ориентацию вкладки для приложения
- 27. Заблокировать ориентацию только для основного UIViewController - iOS
- 28. Заблокировать ориентацию страницы для мобильных телефонов
- 29. Android - получить ориентацию устройства после съемки фотографии
- 30. Как заблокировать ориентацию приложения камеры, вызванную намерениями в Android?
Дикая догадка: сделать 2 различных приложения? –
@Rotwang 2 разных приложения - очень слабое решение. – deadfish
@deadfish Но так они делают это на iDevices. Тогда все ли Apple-ориентированные разработчики «ламеров»? –