Ориентация экрана Android в файле макета - PullRequest
0 голосов
/ 20 декабря 2018

Итак, у меня возникла такая проблема. Я хочу установить ориентацию по умолчанию для макета в AndroidManifest.xml как альбомную, но иметь другую ориентацию для некоторых макетов как портретную, но когда я добавляю android:screenOrientation="portrait", она не переопределяет конфигурацию манифеста.вокруг?Основная идея заключается в том, чтобы сделать макет планшета принудительным альбомным, а макет телефона - портретным.

Вот пример того же приложения для планшета и телефона. Обратите внимание на то, что ориентация макета для планшетов принудительна и не поворачивается, когдаУстройство вращается.И для телефона заблокирован в портретной ориентации и не вращается при повороте устройства enter image description here

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете использовать setRequestedOrientation, но в альбомной ориентации необходимо включить вращение телефона:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Рассчитать размер экрана, учитывая, что планшет больше 6,9 "(я использовал это в своем приложении):

 DisplayMetrics dm = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(dm);
 double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
 double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
 double screenInches = Math.sqrt(x + y);
...