我正在开发的应用程序包含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