2015-01-10 5 views
1

Домой, чтобы приложение для Android предназначалось для работы в портретном режиме только на мобильном телефоне, где, как и в планшете, разрешена как портретная, так и ландшафтная ориентация? Заранее спасибоПоддержка Android только в мобильном телефоне

+0

проверьте этот http://stackoverflow.com/questions/5832368/tablet-or-phone-android и этот http://stackoverflow.com/questions/8180764/how-do-i-lock-screen-orientation- для-телефона-но-не-для-таблетки-андроида –

ответ

0

В манифесте, установите для всех видов деятельности:

<activity android:name=".YourActivity" 
    android:configChanges="orientation" 
    android:screenOrientation="portrait"/> 

Поясню:

  • С android:configChanges="orientation" вы говорите Android, что вы будете нести ответственность по изменениям ориентации.
  • android:screenOrientation="portrait" вы установили режим ориентации по умолчанию.

Вы можете позвонить по телефону setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); в метод onCreate вашей деятельности, если это телефон. Чтобы определить, является ли устройство телефоном или планшетом, вы можете посмотреть на this question.

1

Сначала проверьте свою активность или экран slpash, чтобы приложение было запущено на этом устройстве.

Проверьте приведенный ниже код на экране mainActivity или заставки.

Intent intent; 
if (isTablet(DeciderActivity.this)) 
{ 
    // for Tablet 
    intent = new Intent(this, TabletSplashActivity.class); 
    startActivity(intent); 
} 
else 
{ 
    // for Phone 
    intent = new Intent(this, PhoneSplashActivity.class); 
    startActivity(intent); 
} 

Пожалуйста, объявить метод isTablet

public static boolean isTablet() { 

     DisplayMetrics metrics = new DisplayMetrics(); 
     activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     float yInches = metrics.heightPixels/metrics.ydpi; 
     float xInches = metrics.widthPixels/metrics.xdpi; 
     double diagonalInches = Math.sqrt(xInches * xInches + yInches * yInches); 

     if (diagonalInches >= 7) { 
       // 7inch device or bigger 
       return true; 
      } else { 
       // smaller device 
       return false; 
      } 
     } 

Я надеюсь, что это будет работать для вас, это работает отлично с моим кодом.

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