Android 检查设备是否存在 导航栏 NavigationBar
2015-07-07 10:31
435 查看
/** * 检查设备是否有导航栏 * @param activity * @return */ @SuppressLint("NewApi") public static boolean checkDeviceHasNavigationBar(Context activity) { //通过判断设备是否有返回键、菜单键(不是虚拟键,是手机屏幕外的按键)来确定是否有navigation bar boolean hasMenuKey = false; boolean hasBackKey = false; try { hasMenuKey = ViewConfiguration.get(activity).hasPermanentMenuKey(); } catch (java.lang.NoSuchMethodError e) { // TODO: handle exception } try { hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); } catch (java.lang.NoSuchMethodError e) { // TODO: handle exception } if (!hasMenuKey && !hasBackKey) { // 做任何你需要做的,这个设备有一个导航栏 return true; } return false; } /** * 获取导航栏高度 ,此方法不会检查导航栏是否存在,直接返回数值。所以可能手机没有显示导航栏,但是高度依然返回 * @param activity * @return */ public static int getNavigationBarHeight(Context activity) { Resources resources = activity.getResources(); int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); //获取NavigationBar的高度 int height = resources.getDimensionPixelSize(resourceId); return height; } /** * 获取导航栏高度,此方法会根据手机是否存在导航栏,返回相应的数值 * @param activity * @return */ public static int getNavigationBarHeightEx(Context activity){ if(checkDeviceHasNavigationBar(activity)){ return getNavigationBarHeight(activity); } return 0; }
相关文章推荐
- Android Studio快捷键
- Android Studio导入第三方类库的方法
- [转]Android重力感应开发
- Android图片淡化 透明度 设置Alpha值
- android 存储5种方式
- android api 说明
- android studio上的百度定位的初始化
- Error:(24, 13) Failed to resolve: com.android.support:recyclerview-v7:20.+ <a href="install.m2.repo"
- Android Studio 一些方便使用的设置
- android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug
- Android SDK快速下载
- 1 Android M Developer Preview - Program Overview
- android 语音识别
- Android关于全局异常捕获及发送到服务器
- Android 编辑框 点击空白处,键盘消失
- Android4.3 蓝牙BLE初步
- Android - 文件读写操作
- Android 打飞机 小游戏 的实现 - 画面移动 对象封装 碰撞效果
- Android开发:仿照一号专车的地图页面
- android 画图 surfaceView