android开发笔记之虚拟键(navigation bar)的一些状态的读取

最近有一个UI适配的问题,涉及到了虚拟键(navigation bar),通过查找资料,就对navigation bar的一些参数进行读取,希望大家能用的上:

(1)读取虚拟键(navigation bar)一开始是否显示的配置值(config_showNavigationBar):

public static boolean isVirtualKeyShow(Activity context){
		if(isHighThanOrEqual4point0() == true){			
			Resources resources = context.getResources();
			int resourceId = resources.getIdentifier("config_showNavigationBar", "bool", "android");
			if (resourceId > 0) {
			    return resources.getBoolean(resourceId);
			}								
		}
		return false;		
	}

(2)读取虚拟键(navigation bar)的高(navigation_bar_height),宽(navigation_bar_width)和navigation_bar_height_landscape值,通过分析,最后,发现高是对的,但是宽的值对应不上,大家要小心。

	public static int getNavigationBarHeight(Activity context){
		Resources resources = context.getResources();
		int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
		if (resourceId > 0) {
		    return resources.getDimensionPixelSize(resourceId);
		}
		return 0;
	}
	
	public static int getNavigationBarWidth(Activity context){
		Resources resources = context.getResources();
		int resourceId = resources.getIdentifier("navigation_bar_width", "dimen", "android");
		if (resourceId > 0) {
		    return resources.getDimensionPixelSize(resourceId);
		}
		return 0;
	}
	
	public static int getNavigationBarHeithtLandscape(Activity context){
		Resources resources = context.getResources();
		int resourceId = resources.getIdentifier("navigation_bar_height_landscape", "dimen", "android");
		if (resourceId > 0) {
		    return resources.getDimensionPixelSize(resourceId);
		}
		return 0;
	}

最后,还有一个就是帮助方法,也就是判断系统版本是否高于4.0的方法:

	public static boolean isHighThanOrEqual4point0(){
		if(getAPIVersion() >= 14){
			return true;
		}else{
			return false;
		}
	}
	
	public static int getAPIVersion(){
		int APIVersion;
		try {
			APIVersion = Integer.valueOf(android.os.Build.VERSION.SDK);
		} catch (NumberFormatException e) {
			APIVersion = 0;
		}
		return APIVersion;
	}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hfreeman2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值