获取魅族底部smartbar的高度

我用的是魅族Mx2,假设我要取得系统标题栏,或者我要根据得用户安装的输入法的高度改变想要的显示效果,又或者我要取得魅族flyme系统smartbar的高度,很多人都不知道怎么获取,今天我给大家分享下一个简单的方法取得它们的高度

好,下面我说下代码,代码很少,在oncreated方法里取得,系统会调用一个listener来监听view的绘制,在view绘制完的时候,系统会回调回来通知view绘制,然后这时我们才去取得view的高度。

                // 我的布局内容,最外层的layout
		myLayout = (RelativeLayout) findViewById(R.id.rootview);

		ViewTreeObserver vto = myLayout.getViewTreeObserver();
		vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
			@Override
			public void onGlobalLayout() {

				Rect r = new Rect();
				// 取得这个布局动态的显示区域
				myLayout.getWindowVisibleDisplayFrame(r);

				// 取得这个布局所在根布局的高度,补充些知识点,我们所有的布局都是放在一层根布局里(好像是framelayout),
				// 我们平常的输入法之类的是放在这个根布局里的,所以我们的思路是取得根布局的高度,再减去动态变化的这个RelativeLayout的高度,
				// 得到的就是我们输入法的布局。拓展出去,获取状态栏的高度同理
				int screenHeight = myLayout.getRootView().getHeight();
				int heightDifference = screenHeight - (r.bottom - r.top);
				System.out.println(screenHeight + "-----------"
						+ heightDifference + "-----------");

			}
		});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值