
通过获取内容区域的 rect 的 top 值就是状态栏和标题栏的高度,也就可以得到标题栏的高度了
int contentTop = getWindow()findViewById(WindowID_ANDROID_CONTENT)getTop();
int contentTop = getWindow()findViewById(WindowID_ANDROID_CONTENT)getTop();
注意:
不能再onCreat()和onResume()中调用,那样取的值会是0,可以在onWindowFocusChanged()中取得。
在Android开发过程中,有时需要获取View绘制前的高度或者宽度,一种的可能情形是初始化的时候让某个View的Visible = Gone的,当触发某个事件的时候需要它显示并且希望有一些动画效果。
这时候就要获取这个View显示前即绘制前的宽度或者高度。原理很简单,View的绘制过程发生之前,会先执行onMeasure方法。那么就可以利用反射来获取需要的值。下面给出获取高度的代码,宽度同理。
private int getTargetHeight(View v) {
try {
Method m = vgetClass()getDeclaredMethod("onMeasure", intclass,
intclass);
msetAccessible(true);
minvoke(v, MeasureSpecmakeMeasureSpec(
((View) vgetParent())getMeasuredWidth(),
MeasureSpecAT_MOST), MeasureSpecmakeMeasureSpec(0,
MeasureSpecUNSPECIFIED));
} catch (Exception e) {
}
return vgetMeasuredHeight();
}
拿到这个高度之后就可以做想做的动画效果或者是其他的事情了。
一、高度是自适应的。
二、以JS为例,获取浏览器的高度:
jquery代码直接使用 $(window)height();
原生态JS代码需要考虑页面DOCTYPE的声明,使用以下代码:
<script>
var w=documentdocumentElementdocumentdocumentElementclientHeight:documentbodyclientHeight;
alert(w);
</script>
第一步:登录您QQ空间后,点击工具栏上的“装扮”;
第二步:选择“装扮商城”=》“DIY装扮”=》点击“标题栏”=》宋体">选择自定义标题栏后,您可以通过页面中所提供的设置功能,对于标题栏的展示进行设置(如:高度、对齐、显示等),最后点击“保存”按钮即可;
如下
状态栏是显示显示手机状态(如电池电量、网络状态、时间、运营商信息等)的区域,一般内容型应用都会显示保留状态栏,但是游戏界面如果还保留状态栏就不合适了,因为游戏界面要响应各种手势,而状态栏也会响应一些手势,有可能引发错误 *** 作,所以一般在游戏界面都会隐藏状态栏,使游戏界面全屏显示,关于设置全屏请查看《Android设置Activity全屏的两种方式及Theme属性解析》,继续看状态栏高度测量:
状态栏高度的测量我在这里提供4种方法:
(1)通过系统尺寸资源获取
状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使用的,例如像通常使用系统资源那样androidRdimenstatus_bar_height。但是系统给我们提供了一个Resource类,通过这个类可以获取资源文件,借此可以获取到status_bar_height:
(2)通过R类的反射
大家都知道Android的所有资源都会有惟一标识在R类中作为引用。我们也可以通过反射获取R类的实例域,然后找status_bar_height:
(3)借助应用区域的top属性
这就用到了开题时的那张屏幕区域划分,状态栏位于屏幕最顶端,其位置从(0,0)开始,故而应用区域的顶端位置(高度 = Y坐标 - 0)即为状态栏的高度:
(4)借助屏幕和应用区域高度
还是看屏幕区域划分图,是不是状态栏占满了屏幕中除应用区域之外的全部。
以上就是关于android 怎么去除标题栏高度全部的内容,包括:android 怎么去除标题栏高度、android view怎么获取高度、UC手机浏览器如何获取到除了标题栏、任务栏的高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)