2015-01-10 256 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-對於手機的但不換平板電腦的Android –

回答

0

在清單中,爲所有的活動設置此:

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

讓我解釋一下:

  • 隨着android:configChanges="orientation"你告訴的Android,你會負責的變化方向。
  • android:screenOrientation="portrait"您設置了默認的方向模式。

如果設備是手機,則可以在您的Activity的onCreate方法中調用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);。要確定設備是手機還是平板電腦,您可以查看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; 
      } 
     } 

我希望這會爲你工作,這是工作的罰款與我的代碼。