1

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

Примечания: то же самое приложение (должно быть) в портретном режиме для телефонов

На данный момент у меня есть булева значения папки refs.xml (оба значения и ценность-большая) с различным значением планшет и телефон, но пользователь может видеть, что приложение вращается код:

public static boolean isTablet(Context context) { 
     return (context.getResources().getBoolean(R.bool.isTablet)); 
    } 
+0

В общем, я бы не рекомендовал делать это. Принуждение определенной ориентации нарушает UX, и я не единственный человек, который считает это очень раздражающим до такой степени, что я не использую приложения, которые это делают. Почему бы вам просто не создать макеты для разных ориентаций и позволить пользователям использовать свои устройства так, как они того хотят? – Squonk

ответ

3
if (isTablet(getApplicationContext())) { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } else { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 
    setContentView(R.layout.yourlayout); 



**//this method for check having run in tablet or not??** 

    public static boolean isTablet(Context context) { 
     return (context.getResources().getConfiguration().screenLayout 
         & Configuration.SCREENLAYOUT_SIZE_MASK) 
         >= Configuration.SCREENLAYOUT_SIZE_LARGE; 
    } 
0

Я думаю, вам просто нужно добавить screenOrientation в вашей activity tag в manifest.xml, как показано ниже:

<activity> 
    android:screenOrientation="landscape" 
</activity> 

И ваше приложение будет открываться в режиме landscape

1

Пейзаж не означает, что это таблетки. Вы должны поставить isTablet для таблиц в XML-файле, сохраненных в res/values-sw600dp.

+0

Я использовал этот подход в своих проектах, и он работал хорошо. Я также добавил isTablet в значения-sw720. – Viacheslav

-1

добавить ниже линии в манифесте под тэгом деятельности ...

  android:screenOrientation="landscape" 
0

Вы должны использовать android:screenOrientation="landscape" в Manifest файле, где вы определяете activities

<activity 
      android:name="com.yourpackage.ActivityClassName" 
      android:label="@string/app_name" 
      android:screenOrientation="landscape" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
Смежные вопросы