Android如何判断是否是平板
16lz
2021-01-24
偶然间想起Android的适配问题, 许多大牛都谈过的,主要的内容和原理网上都有,搜一搜就可以找到。所以,这里就不在复述了。而今天我们谈的主要是如何判断Android是否是平板。
众所周知,平板和手机的主要区别就是屏幕尺寸的大小。譬如:手机有4寸、5寸等;而平板就有7寸、8寸、10寸等。但是随着科技的发展以及硬件的快速推进,两者之间的屏幕尺寸之间的界限愈来愈模糊了。所以之前使用的直接使用屏幕分辨率的方法就有点不合时宜了:
/** * 是否是平板 * @param activity * @return */public static boolean isTablet(Activity activity) {final DisplayMetrics metrics = new DisplayMetrics();activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);final int width = metrics.widthPixels;final int height = metrics.heightPixels;if (width > 1023 || height > 1023) {return true;} else {return false;}}
之前看到过一篇博客,上面提供了一种比较适合的方式。简单来说就是在适配各个分辨率时,在相应的文件夹下配置一个resources,定义好值。再在需要的时候根据getResources()和resId获取其值:
/** * 根据value适配的不同判定是否是平板 * @param context * @return */ public static boolean isTablet(Context context) { return context.getResources().getBoolean(R.bool.isTablet); }
在res/values下创建bool.xml
<?xml version="1.0" encoding="utf-8"?> false
复制bool.xml到res/values-sw600dp ( res/values-sw720dp or res/values-xlarge )下,更改isTablet为true即可。
继续查看该博客,发现博主又发现一比较友好的方式,是提取自google官方的工具类:
具体查看该类:com.google.android.apps.iosched.util.UIUtils
具体处理方法如下:
public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; }
参考:http://blog.zerob13.in/ 作者:混动的云
感谢各位博主的释疑和布道。
更多相关文章
- 最新統計:44% IT 和商務人士選擇 Android(安卓)作為入手首款平板
- 在Android中通过jni方式使用编译好的FFmpeg库-Android中使用FFmp
- Apple 再挑起戰火,控告 Samsung 15款 Android(安卓)產品設計侵權
- 松下将在日本推出 7 寸和 10 寸企业用三防 Android(安卓)蜂巢平
- 查看Android(安卓)API文档的正确方式
- Android进程守护详解及解决方案
- android手机定位不准的问题
- Android静默安装和静默卸载
- Google Docs 更新,提供 Honeycomb 平板更佳的使用者体验