A
ndroid 获取屏幕高度、标题高度、状态栏高度详解
Jojol_Zhou ,2010/11/29
Android获取屏幕高度的方法主要由view提供
通过View提供的方法获取高度方式有两种:
1, 当前显示的view中直接获取当前view高宽
2, 通过Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)获取系统当前显示的view根(是一个framelayout对象),android绘制会将要绘制的view放置在framelayout中绘制。
下面分别介绍获取屏幕的高宽度方法
虚线区域介绍:
View获取屏幕参数值方法:
Display对象获取屏幕高宽
:
获取display对象 Activity中getWindowManager().getDefaultDisplay()
getWidth() 返回显示界面宽度即屏幕宽度
getHeight() 返回显示界面高度即屏幕高度
由display对象设置DisplayMetrics高宽值,通过DisplayMetrics对象获取屏幕高宽,有点多此一举
:
getWidth() 返回显示界面宽度即屏幕宽度
getHeight() 返回显示界面高度即屏幕高度
常用一些值计算:
屏幕高宽
Canvas对象 、display对象和DisplayMetrics可获取屏幕的高宽
状态栏高度
View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect后,outRect.top()即是状态栏高度
标题高度
View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect后,outRect.height()-view.getheight()即是标题高度。
绘制区域高宽
方法诸多 随便用。
测试:
测试代码
scrollTo(10, 10);
super.draw(canvas);
Display d = bReader.getWindowManager().getDefaultDisplay();
Log.e("====DisPlay size==", "Height--"+d.getHeight()+" Width--"+d.getWidth());
DisplayMetrics dm = new DisplayMetrics();
d.getMetrics(dm);
Log.e("====DisPlayMetrics size==", "Height--"+d.getHeight()+" Width--"+d.getWidth());
Log.e("====View size==", "Height--"+getHeight()+" Width--"+getWidth()+" Top--"+getTop()+" Left--"+getLeft());
View v = bReader.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
Log.e("====CONTENTView size==", "Height--"+v.getHeight()+" Width--"+v.getWidth()+" Top--"+v.getTop()+" Left--"+v.getLeft());
Log.e("======canvas size==", "height--"+canvas.getHeight()+" width--"+canvas.getWidth());
Rect rect = new Rect();
this.getDrawingRect(rect);
Log.e("====view Drawing Rect==", "height--"+rect.height()+" width--"+rect.width()+" Top--"+rect.top+" Left--"+rect.left+" scrollx--"+getScrollX()+" scrollY--"+getScrollY());
this.getWindowVisibleDisplayFrame(rect);
Log.e("====view WindowVisible rect==", "height--"+rect.height()+" width--"+rect.width()+" Top--"+rect.top+" Left--"+rect.left);
测试结果输出:
====DisPlay size==(3032): Height--480 Width--320
====DisPlayMetrics size==(3032): Height--480 Width--320
====View size==(3032): Height--430 Width--320 Top--0 Left--0
====CONTENTView size==(3032): Height--430 Width--320 Top--50 Left--0
======canvas size==(3032): height--480 width--320
====view Drawing Rect==(3032): height--430 width--320 Top--10 Left--10 scrollx--10 scrollY--10
====view WindowVisible rect==(3032): height--455 width--320 Top--25 Left--0
界面:
全屏显示输出:
====DisPlay size==(3235): Height--480 Width--320
====DisPlayMetrics size==(3235): Height--480 Width--320
====View size==(3235): Height--480 Width--320 Top--0 Left--0
====CONTENTView size==(3235): Height--480 Width--320 Top--0 Left--0
======canvas size==(3235): height--480 width--320
====view Drawing Rect==(3235): height--480 width--320 Top--10 Left--10 scrollx--10 scrollY--10
====view WindowVisible rect==(3235): height--455 width--320 Top--25 Left--0
- 大小: 57.7 KB
- 大小: 15.3 KB
- 大小: 81 KB
- 大小: 55.5 KB
分享到:
相关推荐
本文主要给大家介绍了关于Android获取屏幕、状态栏及标题栏高度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 在开始之前,先来看一张图: 绿色区域:屏幕区域 蓝色区域:状态栏...
详解Android中获取软键盘状态和软键盘高度 应用场景 在Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度。这里列举了一些可能的应用场景。 场景一 当软键盘显示时,按下返回键...
android系列:Android应用开发详解.part2 华嵌智能提供 www.embedded-cn.com http://embedded-cn.taobao.com
android系列:Android应用开发详解.part1 华嵌智能提供 www.embedded-cn.com http://embedded-cn.taobao.com
资源名称:Android热门应用开发详解内容简介:以热门应用为主线,引入了当前热门的综合应用实例(微博、视频点播、二维码、游戏、电话、相册、GTalk、上网),涵盖了几乎所有Android应用开发的知识。全书共分5篇:...
第三章:Android控件架构和自定义控件详解.md
资源名称:Android游戏开发技术实战详解 内容简介:《Android游戏开发技术实战详解》详细讲解了Android游戏开发技术的基本知识。《Android游戏开发技术实战详解》内容新颖、知识全面、讲解详细,《Android游戏开发...
资源名称:Android网络开发技术实战详解内容简介:《Android移动开发技术丛书:Android网络开发技术实战详解》以Android网络应用程序的开发为主题,从底层原理开始讲起,结合真实的案例向读者详细介绍了Android的...
资源名称:Android项目开发详解内容简介:《移动平台开发书库:Android项目开发详解》从实战的角度出发,介绍了基于Android环境的Mobile/Server应用系统开发,涉及移动客户端和服务器端的开发环节,以满足智能手机...
《移动平台开发书库:Android项目开发详解》从实战的角度出发,介绍了基于Android环境的Mobile/Server应用系统开发,涉及移动客户端和服务器端的开发环节,以满足智能手机在线应用的需求。全书以一个Android应用程序...
eoeAndroid特刊第十期:android2.2特色详解 pdf,主要介绍最新的android2.2系统。全面介绍android2.2中的重点升级,JIT内核编译器等方面的内容,本期亮点是推出了三份最近的android行业研究报告,技术盛宴版块里有...
Android多媒体应用开发实战详解:图像、音频、视频、2D和3D
可以看到,有状态栏、ActionBar(ToolBar)、导航栏等,一般来说,APP实现沉浸式有三种需求:沉浸式状态栏,隐藏导航栏,APP全屏 沉浸式状态栏是指状态栏与ActionBar颜色相匹配, 隐藏导航栏不用多说,就是将导航栏隐藏...
Android 屏幕分辨率详解,对应的屏幕大小,像素
android之SQLite数据库开发详解: Android 开发中使用 SQLite 数据库 简介: SQLite 是一款非常流行的嵌入式数据库,它支持 SQL 查询,并且只用很少的内存。Android 在运行时集成了 SQLite,所以每个 Android 应用...
Android 数据库SQLite 详解,简单学好SQLite
Android各种控件详解,