【发布时间】:2013-05-28 19:00:36
【问题描述】:
如何以编程方式检查所有设备和操作系统(2.2-最新)的设备是平板电脑还是手机。
【问题讨论】:
标签: android
如何以编程方式检查所有设备和操作系统(2.2-最新)的设备是平板电脑还是手机。
【问题讨论】:
标签: android
没有办法。您可以在 res/values 中设置布尔值
<bool name="isHandest">false</bool>
在values-sw600dp、values-sw720dp 和values-xlarge 内部
和
<bool name="isHandest">true</bool>
在res/values
【讨论】:
使用最小宽度限定符:
最小宽度限定符允许您定位具有 dp 中给出的某个最小宽度。例如,典型的 7" 平板电脑 最小宽度为 600 dp,所以如果你希望你的 UI 有两个 这些屏幕上的窗格(但较小屏幕上的单个列表),您可以 使用上一节中相同的两个布局用于单和 两窗格布局,但不是大尺寸限定符,而是使用 sw600dp 表示两窗格布局适用于在其上的屏幕 最小宽度为 600 dp
您可以在这些文件夹中使用不同的布局或设置布尔值:
<resources>
<bool name="is_tablet">true</bool>
</resources>
来自官方文档: http://developer.android.com/training/multiscreen/screensizes.html
【讨论】:
如果您将平板电脑定义为屏幕大于 7 英寸的设备
public static boolean isTablet() {
return screenSize >= 7;
}
public static double getScreenSize(Activity activity){
DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
screenSize = Math.sqrt(x+y);
return screenSize;
}
【讨论】: