2012-04-09 223 views
5

我正在開發的應用程序包含2個獨立的佈局:一個用於普通電話,另一個用於小型平板電腦,如NOOKcolor。這是根據屏幕寬度分辨率決定的(當前是600dip)。它在Nook上看起來很棒,但在擁有720 x 1280顯示屏的HTC Rezound上很糟糕。對於後者,無論分辨率更高,所有內容(文本,圖像等)看起來都大得多,所以它們都聚集起來。Android - 檢測小型平板電腦vs大手機?

什麼是選擇合適設備的好方法?也許檢測物理尺寸(4.3「vs 7」)與分辨率?

+0

有一個Configuration.screenLayout位掩碼 - 在這裏看到http://stackoverflow.com/questions/5015094 /確定設備屏幕類別小正常大x使用代碼 – dag 2012-04-09 22:08:38

回答

4

用下面的方法來檢測設備的屏幕尺寸:

/** 
    * Checks if the screen size is equal or above given length 
    * @param activity activity screen 
    * @param screen_size diagonal size of screen, for example 7.0 inches 
    * @return True if its equal or above, else false 
    */ 
    public static boolean checkScreenSize(Activity activity, double screen_size) 
    { 
     Display display = activity.getWindowManager().getDefaultDisplay(); 
     DisplayMetrics displayMetrics = new DisplayMetrics(); 
     display.getMetrics(displayMetrics); 

     int width = displayMetrics.widthPixels/displayMetrics.densityDpi; 
     int height = displayMetrics.heightPixels/displayMetrics.densityDpi; 

     double screenDiagonal = Math.sqrt(width * width + height * height); 
     return (screenDiagonal >= screen_size); 
    } 
+0

啊哈!密度是關鍵!謝謝,這似乎工作 – Bostone 2012-04-09 22:47:14

+0

什麼?我把7.0作爲輸入參數,並且它對我的Kindle Fire返回false。 – 2012-05-23 16:23:21

+0

奇怪,因爲我在我的設備上測試過它,它的工作狀態非常好。嘗試在* return *之前記錄'screenDiagonal'並查看它爲設備實際計算的值 – waqaslam 2012-05-24 07:33:02

1

查看Supporting Multiple Screens的文檔。您可以按照預先確定的文件夾命名結構進行操作,以便Android爲不同的屏幕尺寸/密度加載不同的佈局和繪圖。

例如:

res/layout/my_layout.xml    // layout for normal screen size ("default") 
res/layout-small/my_layout.xml  // layout for small screen size 
res/layout-large/my_layout.xml  // layout for large screen size 
res/layout-xlarge/my_layout.xml  // layout for extra large screen size 
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation 

res/drawable-mdpi/my_icon.png  // bitmap for medium density 
res/drawable-hdpi/my_icon.png  // bitmap for high density 
res/drawable-xhdpi/my_icon.png  // bitmap for extra high density 
+0

對於預蜂窩,這有點無用 – Bostone 2012-04-09 22:31:59

相關問題