android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置

Android 状态栏的设置适配问题详解 Android 状态栏的设置适配问题详解 最近看了很多关于状态栏的问题的处理,总结出处理状态栏分两个方向1>5.0一下2>5.0以上的手机状态栏的设置,,,,,,,,这里说的都是自定义的toolbar,我这里已经把titlebar给隐藏掉了 (1) 关于5.0一下:首先我们需要在res文件下的style中设置, <!-- Base application theme. --> <style name=AppTheme parent=AppTheme.Base> <!-- Customize your theme here. --> </style> <style name= 立即下载

首先,有一点需要声明,其实在android中,画布Canvas的高宽其实是屏幕的高宽。

如此一来,获得屏幕高宽的方法就很多了:


1.

WindowManager windowManager = getWindowManager();   

Display display = windowManager.getDefaultDisplay();   

screenWidth = display.getWidth();   

screenHeight = display.getHeight();  

 

2.

DisplayMetrics dm = new DisplayMetrics();     
this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity   
screenWidth =dm.widthPixels;  
screenHeight =dm.heightPixels;  


以上两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效。


3.

还可以在onDraw中由canvas来获得

screenWidth =canvas.getWidth();   

screenHeight =canvas.getHeight();  


而视图的高宽则是大多数人所认为的canvas的高宽,其实他所指的是除了任务栏和状态栏的高宽,主要有如下方法:

1.

viewWidth=this.getWidth();   

viewHeight=this.getHeight();  


2.重写view的onSizeChanged,该方法会在onCreate之后,onDraw之前调用

protected void onSizeChanged(int w, int h, int oldw, int oldh) {   
viewHeight=h;   
viewWidth=w;   
super.onSizeChanged(w, h, oldw, oldh);   
}  


 

任务栏、状态栏的高宽的高宽我目前还不清楚,不过从网上查找可知:

引用
frameworks/core/res/values/themes.xml
<item name="windowTitleSize">25dip</item>
frameworks/core/res/values/dimens.xml
<dimen name="status_bar_height">25dip</dimen>

在一个activity中如果要获取高宽,最好是放在onSizeChanged中比较保险。

以上是我对android获得高宽的一点总结,如果有错误的地方,欢迎留言探讨。

另外,还有对屏幕显示的一些设置:

//设置为无标题

requestWindowFeature(Window.FEATURE_NO_TITLE);  


//设置为全屏模式getWindow().setFlags

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);  


//设置为横屏

setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);  


转自 http://yuyanshan.javaeye.com/blog/750043

避坑指南:C#用S7NetPlus读写西门子PLC字符串(String/WString)的完整方案 本文详细解析了C#通过S7NetPlus读写西门子PLC字符串(String/WString)的完整方案,包括内存布局、编码差异和字节序处理等关键技术细节。提供了实战优化的代码示例和常见问题排查指南,帮助开发者避免乱码、截断等常见陷阱,提升工业自动化项目的开发效率。 阅读详情

相关推荐

Keil MDK编译错误#541解决方案与ARM_Compiler包解析

在嵌入式开发中,编译器工具链的依赖管理是确保项目顺利构建的关键环节。以Keil MDK为例,其软件包依赖机制通过组件化设计实现功能解耦,其中ARM_Compiler包专门处理系统IO重定向等编译器扩展功能。这种架构既提升了模块复用性,也带来了版本兼容性挑战。当出现'Error #541: component missing'报错时,通常是由于中间件组件(如文件系统)在新版本中显式依赖了ARM_Compiler包。开发者需要通过Pack Installer安装该包,并在Run-Time Environment

weixin_32129187的博客 367

Android使用WindowManager覆盖状态栏

TYPE_SYTEM_ERROR,这个属性是可以获得焦点,并且相应事件的

Alone_SLFly的专栏 1万+

射频功率放大器设计实战:从理论到Layout的全流程解析

本文以一款40W、960MHz LDMOS功率放大器为例,系统解析了从理论分析、仿真设计到版图实现的射频功率放大器设计全流程。内容涵盖AB类放大器选型、核心指标定义、稳定性分析、Load-Pull/源牵引仿真、史密斯圆图匹配、偏置网络设计,以及最终的谐波平衡仿真与版图电磁验证,为工程师提供了一套从理论到实践的完整设计方法论。

weixin_29266007的博客 249

android获取activity高宽,Activity设置全屏以及获得屏幕的宽和高

Android程序中要设置全屏包括两个部分: 窗口全屏和Activity全屏。窗口全屏是指隐藏系统顶部用来显示时间、电量、信号等信息的标题栏 ,Activity全屏 是指隐藏程序的标题栏。我们可以在程序代码中设置,也可以通过修改AndroidManifest.xml文件来实现。1. 修改程序代码 。我们需要在 Activity的onCreate方法中添加相应的代码。请 注意 代码的位置,要在set...

weixin_40006133的博客 1803

企业微信会话存档SDK集成与动态库加载实战

本文详细解析了企业微信会话存档SDK的集成与动态库加载实战,重点解决Windows与Linux环境下动态库加载的差异问题。通过实战案例和优化建议,帮助开发者高效完成企业微信API集成,确保合规存档功能稳定运行。

weixin_26934905的博客 464

Android 小知识 修改页面高度

【代码】【无标题】

qq_42795723的博客 301

Ubuntu20.04下Docker无缝升级实战指南

本文提供了一份在Ubuntu20.04系统上安全、无缝升级Docker的实战指南。文章详细阐述了升级前的版本检查、数据备份等准备工作,逐步演示了通过APT包管理器进行升级或指定版本安装的操作步骤,并强调了升级后的验证与常见问题回滚方案,确保业务容器平稳过渡。

postgres8guard的博客 478

android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)

这里总结下android中关于手机屏幕的相关操作:  1、获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材)  添加与不添加有很大的区别 // 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDe

知识搬运工,资料任你拿,包括书籍、电影、电视剧、网站、软件等,VX公人人人号:向前书局 1046

11、基于STM32的智能药盒

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。嵌入式具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

行走的皮卡丘 6102

linux内核学习(八)---摄像头框架移植(上)

本章来开始进行摄像头的移植,同时回顾一下V4L2的整个框架

文艺小少年的博客 113

android 获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置

首先,有一点需要声明,其实在android中,画布Canvas的高宽其实是屏幕的高宽。  如此一来,获得屏幕高宽的方法就很多了:  1.  Java代码   WindowManager windowManager = getWindowManager();      Display display = windowManager.getDefaultDi

打字打不快的屌丝 791

DeerFlow 系列教程 附录 | 核心文件索引、官方文档索引与推荐阅读顺序

DeerFlow 系列教程 附录本附录汇集了 DeerFlow 项目的核心文件索引、官方文档索引和推荐阅读顺序三份速查资料,方便读者在日常开发和学习中快速定位关键代码与文档。内容按实际项目目录结构整理,所有路径均基于 DeerFlow 2.0 版本验证。

weixin_43674738的博客 328

android获取屏幕属性,获取手机屏幕DisplayMetrics属性多种方法

1. DispalyJava代码WindowManagerwindowManager=getWindowManager();Displaydisplay=windowManager.getDefaultDisplay();screenWidth=display.getWidth();screenHeight=display.getHeight();2.DisplayMetric...

weixin_32265069的博客 959

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 绿色线程
下一篇: Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
perfe_ct
博客等级 码龄20年 20粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值