3 回答
TA贡献1786条经验 获得超11个赞
用这个:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
如果设备在大屏幕上运行,则返回true。
TA贡献1828条经验 获得超3个赞
您也可以尝试在资源文件中使用此
Add boolean参数。
在res / values / dimen.xml文件中,添加以下行
<bool name="isTab">false</bool>
在res / values-sw600dp / dimen.xml文件中,添加以下行:
<bool name="isTab">true</bool>
然后在您的java文件中获取以下值:
if(getResources().getBoolean(R.bool.isTab)) {
System.out.println("tablet");
} else {
System.out.println("mobile");
}
TA贡献1900条经验 获得超5个赞
此代码段将告诉您设备类型是否为7英寸或更大以及Mdpi或更高分辨率。您可以根据需要更改实现。
private static boolean isTabletDevice(Context activityContext) {
boolean device_large = ((activityContext.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE);
if (device_large) {
DisplayMetrics metrics = new DisplayMetrics();
Activity activity = (Activity) activityContext;
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.densityDpi == DisplayMetrics.DENSITY_DEFAULT
|| metrics.densityDpi == DisplayMetrics.DENSITY_HIGH
|| metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM
|| metrics.densityDpi == DisplayMetrics.DENSITY_TV
|| metrics.densityDpi == DisplayMetrics.DENSITY_XHIGH) {
AppInstance.getLogger().logD("DeviceHelper","IsTabletDevice-True");
return true;
}
}
AppInstance.getLogger().logD("DeviceHelper","IsTabletDevice-False");
return false;
}
- 3 回答
- 0 关注
- 945 浏览
添加回答
举报