Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我们的内容布局可以延伸到系统状态栏,然后直接使用方法 setStatusBarColor() 把系统状态栏设置成透明就好了。
前面的文章介绍了如何实现广告轮播的Banner效果,本想可以告一段落。然而某天产品经理心血来潮,拿着苹果手机,要求像iOS那样把广告图顶到状态栏这儿。刚接到这需求,不禁倒吸一口冷气,又要安卓开发去实现iOS的效果,真是强人所难。翻了翻资料,发现修改状态栏的颜色倒是可行,但要把轮播图顶上去就不容易了。再瞅瞅淘宝和当当,原来两个大厂的App都没做出这个效果。正想跟产品经理说这个实现不了,谁料产品大姐笑盈盈地走过来,指着手机说道:“你看,做成京东这样就行了。”盯着手机看了半晌,京东这厮还真的让轮播图插进状态栏了,于是瞬间石化。下面是京东App的首页头部截图:
android中沉浸式状态栏的文章已经满大街了,可是在实现某些效果时,还是得各种搜索,测试一通后,最后还常常满足不了要求,即使好不容易在一部手机上满足了需求,放在另外一手机上,发现效果还各种不适配。今天把自己这几天学到的关于沉浸式状态栏知识进行总结下。
我们先一起来回顾一下实现沉浸式状态栏的一般套路。在 Android 上,关于对 StatusBar(状态栏)的操作,一直都在不断改善,并且表现越来越好,在 Android4.4 以下,我们可以对 StatusBar 和 NavigationBar 进行显示和隐藏操作。但是直到 Android4.4,我们才能真正意义上的实现沉浸式状态栏。从 Android4.4 到现在(Android 9),关于沉浸式大概可以分成三个阶段:
其实这篇主要是讲解适配状态栏的,在这其中可能有些读者对状态栏(StatusBar)、ActionBar、ToolBar、TitleBar有点混淆或者感觉很混乱,所以就有了这其中的内容。
http://www.jianshu.com/u/e01fe6ddfa1c
淡化状态栏和系统栏 如果要淡化状态和通知栏,在版本为4.0以上的Android系统上,你可以像如下使用 SYSTEM_UI_FLAG_LOW_PROFILE这个标签。 // This example uses decor view, but you can use any visible view. View decorView = getActivity().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFIL
对于android:fitsSystemWindows这个属性你是否感觉又熟悉又陌生呢?
今天在做作业的时候有这样一种需求,评论功能页面需要仿QQ或者微博类似的页面布局,Edittext固定底部,但是又能悬浮在输入法之上。百度看了好多代码,又是写监听改变布局,又是动态调整输入框的位置,很高级,但是我尝试都没有效果,也不知道是我手机的原因还是不会用人家的代码,没办法,自己动手研究。
本文介绍了沉浸式模式在Android开发中的实现,主要包括了沉浸式模式的定义、实现方式、优缺点以及实例展示。
沉浸式算是目前Android行业比较流行的一种App设计风格,将菜单栏北京设置为导航栏的颜色,感觉顶部状态栏像是被入侵了一样,因此称为沉浸式菜单栏。本文将介绍三种方式去实现沉浸式状态栏。
本文实例讲述了Android编程中沉浸式状态栏的三种实现方式。分享给大家供大家参考,具体如下:
之前公司项目UI改版的时候,把大部分标题栏都设计成了白色,给我们的设计图是这个样子的:
随着用户要求的不断提高,Android版本的不断升级,沉浸式状态栏似乎已经成为了每个App的必备功能。 首先要实现它我们得先理解他,状态栏不同于标题栏,状态栏是Android手机自带的,显示一些Android内置的信息。正常情况下位于我们标题栏上方,以黑色居多。我们的标题栏多数是不会使用黑色标题的,所以,如果不控制状态栏的颜色,就是和我们的标题栏有明显的色彩差。 在笔者的使用中,沉浸式状态栏分为两种:
上一篇博客 【Android 屏幕适配】屏幕适配通用解决方案 ② ( 自定义组件解决方案 | 需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据 | 实现步骤 ) 中 , 提出 如果要实现将 宽高为 720 x 1232 的设计稿 , 对应 手机屏幕中除 状态栏之外的 布局 , 需要完成如下操作 :
有一个View.setLayoutparams的方法,注意这个LayoutParams跟的不是自身的LayoutParams而是父容器的layoutParams
本文实例讲述了Android编程实现播放视频时切换全屏并隐藏状态栏的方法。分享给大家供大家参考,具体如下:
随着 Apple 发布 iPhone X 之后,各大手机厂商也开始模仿这种刘海屏的设计,而且刘海屏手机的用户也是越来越大,前段时间将项目进行了所有主流厂商的刘海屏手机的适配,以便让刘海屏手机的用户也能有更好的体验。
状态栏与导航栏属于SystemUi的管理范畴,虽然界面的UI会受到SystemUi的影响,但是,APP并没有直接绘制SystemUI的权限与必要。APP端之所以能够更改状态栏的颜色、导航栏的颜色,其实还是操作自己的View更改UI。可以这么理解:状态栏与导航栏拥有自己独立的窗口,而且这两个窗口的优先级较高,会悬浮在所有窗口之上,可以把系统自身的状态栏与导航栏看做全透明的,之所有会有背景颜色,是因为下层显示界面在被覆盖的区域添加了颜色,之后,通过SurfaceFlinger的图层混合,好像是状态栏、导航栏自身有了背景色。看一下一个普通的Activity展示的时候,所对应的Surface(或者说Window也可以)。
尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显示,以实现看更大画面的视频。当切换回竖屏后,又显示状态栏。那么如何实现呢?
Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清
今天介绍一下,我在项目开发过程中,实现状态栏和虚拟按键背景颜色变化的方法,实现方式是,通过隐藏系统的状态栏和虚拟按键的背景,实现图片和背景显示到状态栏和虚拟按键下方。下面来看实现代码:
1. 先上效果图,实现沉浸式状态栏有两种方式,一种是通过写Theme主题的方式,另一种是写代码的方式。若要使多个页面出现沉浸式状态栏,则使用主题的方式更方便,如果只要使单个页面出现,则使用代码方式更好!当然了,看个人喜好而去。
Android Studio在实现隐藏标题栏和状态栏上和Eclipse是完全不一样的。
其实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。
如下图:状态栏是指android手机顶部显示手机状态信息的位置。 android 自4.4开始新加入透明状态栏功能,状态栏可以自定义颜色背景,使titleBar能够和状态栏融为一体,增加沉浸感。
本文主要给大家介绍了关于Android获取屏幕、状态栏及标题栏高度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
异形屏适配难点是 需要针对 不同的手机厂商 , 不同的 Android 系统版本 进行适配 ;
和尚在切换横竖屏时用到 SystemChrome,和尚理解它作为一个全局属性,很像 Android 的 Application,功能很强大。
导语:沉浸式状态栏,改变状态栏的颜色使之与APP风格一体化是不是感觉很漂亮,很美?其实实现这种效果并不难,google在4.4及以下提供了相关的方法。 我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏的颜色,使他们的风格非常的统一,看起来异常的漂亮和清爽。想不想实现这种效果呢,其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。当然这种效果只支持在API 19及以上使用沉浸式状态。4.4系统以上的是
xmlns:android=”http://schemas.android.com/apk/res/android “>
状态栏默认的颜色是绿色的,很丑,更改颜色可以在theme中修改对应主题的颜色。 当然,个人认为透明状态栏最为美观,下面是实现方式:
原文地址:http://blog.isming.me/2016/01/09/chang-android-statusbar-text-color/,转载请注明出处。 随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上面的文字就无法看清了。因此本文提供一些解决方案,可以是MIUI6+,Flyme4+
就能得到透明的状态栏,比较网易云音乐的界面会发现网易云的状态栏是全透明的,而通过设置windowTranslucentStatus得到的状态栏背景始终是半透明的矩形。所以状态栏颜色会比toolbar颜色深一点(Material Design)
Google允许开发者在Android 4.4以上设置状态栏透明或半透明,布局填充全屏;而在5.0以上可直接设置状态栏颜色。
和尚我最近在调整页面状态栏的效果,主要包括沉浸式状态栏和伪沉浸状态栏(同事唠嗑给定义的玩的)。 前段时间整理过一篇 Android 沉浸式状态栏的多种样式,现在和尚我在稍微的补充一下,都是在日常应用中测试整理的。
本文介绍了android开发修改状态栏背景色和图标颜色的示例,分享给大家,具体如下:
有时候我们想在 andorid 手机上实现一种 跨越 顶部状态栏的效果,比如一张图片直接显示在 状态栏内。比如下图:
由于这个功能是Android5.0及以上的系统才支持的,因此我们先在代码中做一个系统版本号的判断,只有当版本号大于或等于21的时候,也就是5.0及以上系统时才会执行后面的代码。
最近在写自己的小东西的时候,遇到了一个Bug,就是沉浸式转态栏与华为虚拟按键的冲突的问题。 先看一下出现问题的图
现在基本上所有的应用都会去实现沉浸式状态栏,这个是应用的标配,如果你开发的应用没有,那这个吐槽点就多了,“这美工有审美观么”“程序猿这么菜,沉浸式都不会?”….. 咳咳….. 开个玩笑啊,各有各的设计思想,不能怪程序猿。
现在主流的App设计风格很多都用到了Materail Design,今天我们就来简单的实现一下改变状态栏颜色、让状态栏透明这两种效果。
自android5.0开始,沉浸式状态栏似乎成为一种潮流,应用里缺少沉浸式总感觉少些什么。于是乎,我开始到处找如何兼容低版本的沉浸式,由于Android平台跨度问题,总遇到一些不如人意的问题。终于,皇天不负有心人,通过参考一些网络上的资料以及开发的一些经验,总结出一个可行的且良好的解决方案!
上一篇文章介绍了高仿京东的沉浸式状态栏,可是跟京东首页的头部轮播图相比,依然有三处缺憾: 1、京东的头部Banner上方,除了有悬浮着的状态栏,状态栏下面还有一行悬浮工具栏,内嵌扫一扫图标、搜索框,以及消息图标; 2、把整个页面往上拉,状态栏的背景色从透明变为深灰,同时工具栏的背景也从透明变为白色; 3、页面下拉到顶后,继续下拉会拉出带有“下拉刷新”字样的布局,此时松手则会触发页面的刷新动作; 上面第一点的状态栏和工具栏悬浮效果,都有对应的解决办法;第二点的状态栏和工具栏背景变更,也存在可行的解决方案。倒是第三点的下拉刷新,以及第二点的上拉监听,却不容易实现。 虽然Android提供了专门的下拉刷新布局SwipeRefreshLayout,但它并没有页面随手势下滚的效果。一些第三方的开源库如PullToRefresh、SmartRefreshLayout固然能让整体页面下滑,可是顶部的下拉布局很难个性化定制,至于状态栏、工具栏的背景色修改更是三不管。因此若想呈现完全仿照京东的下拉刷新特效,只能由开发者编写一个自定义的布局控件了。 自定义的下拉刷新布局,首先要能够区分是页面的正常下滚,还是拉伸头部要求刷新。二者之间的区别很简单,直觉上看就是判断当前页面是否拉到顶了。倘若还没拉到顶,继续下拉动作属于正常的页面滚动;倘若已经拉到顶了,继续下拉动作才会拉出头部提示刷新。所以此处得捕捉页面滚动到顶部的事件,相对应的则是页面滚动到底部的事件。鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。正好ScrollView提供了滚动行为的变化方法onScrollChanged,通过重写该方法即可判断是否到达顶部或底部,重写后的代码片段如下所示:
注:设置AppBar之后,单独在build内设置这行代码会失效 SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
透明状态栏是android 自4.4开始新加入的功能,他可以是状态栏根据我们自己想要的颜色进行定义,使titleBar能够和状态栏融为一体,增加沉浸感。
本文是手势导航连载的第一篇文章,在接下来的时间里,我们将会为大家带来一系列手势导航的话题,敬请关注!
Android开发中在某些界面为了保证显示一致性,可能需要调整statusBar的背景色。Android 5.0开始只需要修改styles.xml文件中colorPrimaryDark的颜色值就可以修改statusbar背景色。但colorPrimaryDark只能设置固定色值的颜色,无法设置渐变色。所以,通过colorPrimaryDark无法实现状态栏的渐变色效果。
Bitmap是一个final类,因此不能被继承。Bitmap只有一个构造方法,且该构造方法是没有任何访问权限修饰符修饰,也就是说该构造方法是friendly,但是谷歌称Bitmap的构造方法是private(私有的),感觉有点不严谨。不管怎样,一般情况下,我们不能通过构造方法直接新建一个Bitmap对象。
领取专属 10元无门槛券
手把手带您无忧上云