iOS6 / iOS7 状态栏高度适配】的更多相关文章

问题原因:iOS7的状态栏(status bar)不再占用单独的20px,所以假设你在iOS6上的界面布局是正常的,那么到了iOS7上就会变成以下这个样子:             左边是iOS6界面布局,右边是iOS7界面布局.这时有人会想着把iOS7界面上控件总体向下移动20px,可是当Interface Builder Document改成Xcode 4.6时又变成了例如以下情况:             界面不会由于你在不同的Interface Builder Document值下设置不…
1.为非视网膜\视网膜屏幕分别准备2份图片,比如: 1> 非视网膜 abc.png 2> 视网膜 abc@2x.png 程序检测视网膜屏到会自动替换@2x 2.程序启动图片 * 程序启动过程中会自动全屏显示Default.png图片,程序启动完毕就会隐藏Default.png图片 * Default.png 非视网膜 * Default@2x.png 3.5英寸的视网膜 * Default-568h@2x.png 4英寸的视网膜 程序检测视网膜屏到会自动替换@2x 3.软件图标 * 系统会自动…
IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. 注定这段时间是忙的,是头疼的!原创在此哦http://my.csdn.net/rhljiayou 这两天经常会碰到群里有人在问问题,问ios7怎么适配,以及各种网上说的如何解决ios7下状态栏的问题. 我发现各种群里流传着一种适配方法,就是修改window的坐标(window.frame),然后大…
IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. 注定这段时间是忙的,是头疼的!原创在此哦http://my.csdn.net/rhljiayou 这两天经常会碰到群里有人在问问题,问ios7怎么适配,以及各种网上说的如何解决ios7下状态栏的问题. 我发现各种群里流传着一种适配方法,就是修改window的坐标(window.frame),然后大…
原文地址:https://blog.csdn.net/liup1211/article/details/86583015 写在前面: 1,本文阐述如何实现沉浸式状态栏 2,部分代码有从其他博客摘抄,也有我自己的总结,若侵犯了原作者的权益,请联系我删除 下面说一下我的实现步骤 1,colors <color name="colorPrimary">#3F424E</color> <color name="colorPrimaryDark"…
一篇总结的非常完善的博文:http://www.jianshu.com/p/ec5a1a30694b 屏幕像素参数相关信息表格 屏幕级别 像素密度 每英寸像素数   通常分辨率 分辨率别称    默认图标大小 xxhdpi       3           480       1080*1920       1080P        144*144       重点关注 xhdpi        2            320        720*1280         720P    …
1.要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏: Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我们的内容布局可以延伸到系统状态栏,然后直接使用方法 setStatusBarColor() 把系统状态栏设置成透明就好了. Android 4.4 ~ Android 5.0 :添加了属性 getWindow().addFlags(WindowManager.LayoutParams.…
获取状态栏高度: final double statusBarHeight = MediaQuery.of(context).padding.top; 所谓安全区域,就是适配现在一些刘海屏之类的非常规显示屏,在flutter中除了根据上面的方法获取到状态栏高度,给页面加对应的状态栏高度padding,还有一个专门的widget用来显示安全区域内容:SafeArea 下面是对比图: 1 Widget build(BuildContext context) { 2 return Material(…
  设备分辨率         状态栏高度           导航栏高度 标签栏高度 iPhone6 plus       1242×2208 px           60px               132px           147px iPhone6 750×1334 px 40px 88px 98px iPhone5/5s/5c 640×1136 px 40px 88px 98px iPhone4/4s 640×960 px 40px 88px 98px iPad3/4/Ai…
文本转载于:http://blog.csdn.net/yinkai1205/article/details/8638864 如下代码所示: [java] view plaincopy private int getStatusBarHeight() { Class<?> c = null; Object obj = null; Field field = null; int x = 0, sbar = 0; try { c = Class.forName("com.android.i…
背景介绍: 到目前为止,android已经从1.5发展到目前的3.2,我们在写一个应用的时候,最常用到得就是获取屏幕高度,宽度,以及status bar的高度. 然而android系统变化太快了,从开始的手机操作系统到目前的3.2 平板电脑系统,在获取这些数据的时候也发生了很大的变化. 值得我们重视,否则会有很多错误发生. 问题分析及解决方案: 1. android 1.6 到 android 2.x 这是android手机操作系统,从1.6到2.x都有着统一的获取方法. 直接利用android…
在android应用中,有时需要计算个View的位置,导致需要计算状态栏高度,标题栏高度等信息.为以后方便,在此做个简单记录. 晒代码前先了解一下android屏幕区域的划分,如下图(该图引用自此文http://www.iteye.com/topic/828830 ) 1. 屏幕区域的获取 activity.getWindowManager().getDefaultDisplay(); 2.应用区域的获取 Rect outRect = new Rect(); activity.getWindow…
基础 各区域示例,注意绿色,紫色,橙色区域 注意: 在onCreate只是对象的初始创建过程,这时并没有draw,这时view.getHeight返回0,可在onStart里用getHeight等. 取View宽高2个方法 1,View获取屏幕参数的相关方法 2,用canvas 获取屏幕高宽 Display对象 获取display对象 Activity中getWindowManager().getDefaultDisplay() getWidth() 返回显示界面宽度即屏幕宽度 getHeigh…
Retina (3.5/4 inch Screen) or Non-Retina 比量 if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { if ([[UIScreen mainScreen] scale] == 2.0) { if([UIScreen mainScreen].bounds.size.height == 568){ // iPhone retina-4 inch } else{ // iPhone…
一.Activity界面的划分 简单说明一下(上图Activity采用默认Style,状态栏和标题栏都会显示):最大的草绿色区域是屏幕界面,红色次大区域我们称之为"应用程序界面区域",最小紫色的区域我们称之为"View绘制区域":屏幕顶端.应用界面区之外的那部分显示手机电池网络运营商信息的为"状态栏",应用区域顶端.View绘制区外部显示Activity名称的部分我们称为"标题栏". 二.状态高度的测量         状态栏…
干货 Class<?> c = null; Object obj = null; Field field = null; int x = 0, sbar = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField("status_bar_height"); x = Integer.parseInt(field…
Android获取屏幕高度的方法主要由view提供 通过View提供的方法获取高度方式有两种: 1, 当前显示的view中直接获取当前view高宽2,通过Activity的getWindow().findViewById(windows.iD_ANDROID_CONTENT)获取系统当前显示的view根(是一个framelayout对象),android绘制会将要绘制的view放置在framelayout中绘制. 下面分别介绍获取屏幕的高宽度方法 虚线区域介绍:  View获取屏幕参数值方法:…
在应用开发中,有时我们需要用代码计算布局的高度,可能需要减去状态栏(status bar)的高度.状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使用的,例如像通常使用系统资源那样android.R.dimen.status_bar_height.但是系统给我们提供了一个Resource类,通过这个类我们可以获取资源文件.下边是在Activity中获取的方法 public int getStatusBarHeight() { int resul…
android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度 1.获取自己定义控件height 在本Activity中获取当前Activity中控件的height: Button button = (Button)findViewById(R.id.button); int buttonHeight = button.getHeight(); 在Activity中获取其它xml文件里控件的height: LayoutInflater factorys = LayoutInflater.f…
在应用开发中,有时我们需要用代码计算布局的高度,可能需要减去状态栏(status bar)的高度.状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使用的,例如像通常使用系统资源那样android.R.dimen.status_bar_height.但是系统给我们提供了一个Resource类,通过这个类我们可以获取资源文件.下边是在Activity中获取的方法 ? 1 2 3 4 5 6 7 8 public int getStatusBarHe…
自从IOS7出来以后,以前写在IOS6上或者更低版本的程序,跑在IOS7的模拟器上就会出现一些问题.最大的问题就是,所有的UI空间都会统一向上移动20个点(如果空间的y值为0,就会被StatusBar挡住),造成原来在IOS6下精心布局的界面在IOS7下特别难看. IOS7和IOS6最大的区别,除了扁平化设计以外,就是全屏App.在IOS7的情况下,状态栏也是控制器的View的一部分.坐标点的y值,不再是从StatusBar的底部开始,而是从StatusBar的顶部开始.我们可以很明显地感受到,…
iOS7上不少控件的样子有了变化(毕竟要扁平化嘛),不过感觉变化最大的肯定非tableView莫属.因为这个控件的高度可定制性,原先是使用及其广泛的,这样的一个改变自然也影响颇大. 1.accessoryType tableViewCell中变化最大的的accessoryType是UITableViewCellAccessoryDetailDisclosureButton了,这个在iOS6的时候是提示用户还有更多内容,iOS7里面变成了UITableViewCellAccessoryDetail…
由于iOS7里面status bar和视图是重叠在一起了,所以应用的y坐标就没法和以前一致了,需要重新计算设定.基本上,你的应用用Xcode5运行一下就能看见这个问题,这里写了一个最简单的例子,一个View上加了一个Label控件,分别在iOS6和iOS7的模拟器上的样子. 从图上明显可以看到,iOS7上的应用y坐标起始计算点是从屏幕顶点算起,而iOS6是从status bar来算起,这个原因是导致一切问题的根源. 好了,找到了问题就好办,我列举一下看到过的尝试过的方法: 1. 修改window…
用Xcode5运行一下应用,第一个看到的就是status bar的变化.在iOS6中,status bar是系统在处理,应用中不需要考虑这部分,iOS7之后是应用在处理,每个ViewController都可以控制status bar. iOS7里面的status bar是透明的,会把下面的内容一起显示出来,比如我的应用色调是深色调,希望status bar上的图标是浅色的.那么我需要做两步: 1. 在info.plist中设置View controller-based status bar ap…
苹果的iOS7推出后,对于所有的应用来说都提出了一个天然的需求--适配不同版本的SDK.目前来说,用iOS6的SDK生成的应用,可以在iOS7的系统上跑,UI上也保持了原来的风格样式,这是苹果做的向下兼容,不过不要小看苹果推行iOS7的决心--苹果发布消息,2014年2月1日开始,AppStore上不接受不是Xcode5的提交. 这样,苹果给所有的开发者留下的就是华山一条路了--升级你的系统吧,Mac10.9都免费发布了,你还要闹哪样?! 虽然每版SDK的推出都会有适配的问题,但个人感觉这次iO…
我们的应用都是需要国际化的,字符串也是重要的一环.一般来说,我们是通过一个string资源文件来实现这个目的的,我们需要支持几种语言,就把这个文件本地化多少次.代码中需要用NSLocalizedString这个宏,比如,我希望设置一个tableView的title: self.navigationItem.title = NSLocalizedString(@"test", nil); self.navigationItem.title = NSLocalizedString(@&qu…
popOver这个空间本身是iPad only的,所以iPhone上见不到,我记得微信上有个这样的弹出框,有扫一扫等几个菜单项,估计这是腾讯自己实现的,用于菜单的扩展. popOver从iOS6到iOS7最大的变化还是扁平化,除此之外是背景改成了白色.如果你的popOver里面是一个tableView的话,那么自动会是一个半透明的显示,如果是自定义的一些内容,推荐也采用半透明的显示.                            左侧的图是iOS6的样式,右侧的图是iOS7的样式.我们看…
- (void)statusBarOrientationChange:(NSNotification *)notification { WClassAndFunctionName; UIInterfaceOrientation oriention = [UIApplication sharedApplication].statusBarOrientation; [self adaptUIBaseOnOriention:oriention]; } 一般情况下,关于屏幕旋转的适配用view自带的au…
ios ui开发过程中,经常会使用到导航栏,默认的样式比较单一,所以经常需要修改导航栏的样式 ios4: - (void)drawRect:(CGRect)rect { UIImage *image = [UIImage imageNamed:@"navbar_bg.png"]; [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; return; } ios5以后: if ([self.na…
获取android屏幕上状态栏的高度方法网上很多这里不再敖述,只举一个例子 Rect rect = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); rect.top便是状态栏的高度. 上面的rect.top为0 的原因是:不能在onCreate() , onResume() , onStart()里面使用. 在布局文档里面最外层的layout不能写成fill_parent…