我正在開發的應用程序包含2個獨立的佈局:一個用於普通電話,另一個用於小型平板電腦,如NOOKcolor。這是根據屏幕寬度分辨率決定的(當前是600dip)。它在Nook上看起來很棒,但在擁有720 x 1280顯示屏的HTC Rezound上很糟糕。對於後者,無論分辨率更高,所有內容(文本,圖像等)看起來都大得多,所以它們都聚集起來。Android - 檢測小型平板電腦vs大手機?
什麼是選擇合適設備的好方法?也許檢測物理尺寸(4.3「vs 7」)與分辨率?
我正在開發的應用程序包含2個獨立的佈局:一個用於普通電話,另一個用於小型平板電腦,如NOOKcolor。這是根據屏幕寬度分辨率決定的(當前是600dip)。它在Nook上看起來很棒,但在擁有720 x 1280顯示屏的HTC Rezound上很糟糕。對於後者,無論分辨率更高,所有內容(文本,圖像等)看起來都大得多,所以它們都聚集起來。Android - 檢測小型平板電腦vs大手機?
什麼是選擇合適設備的好方法?也許檢測物理尺寸(4.3「vs 7」)與分辨率?
用下面的方法來檢測設備的屏幕尺寸:
/**
* 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);
}
查看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
對於預蜂窩,這有點無用 – Bostone 2012-04-09 22:31:59
有一個Configuration.screenLayout位掩碼 - 在這裏看到http://stackoverflow.com/questions/5015094 /確定設備屏幕類別小正常大x使用代碼 – dag 2012-04-09 22:08:38