说起来,在不知不觉中,我竟然凑成了这沉浸式状态栏三部曲。 其实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。...可以看到,这些App虽然实现了沉浸式状态栏的效果,但是由于状态栏上的图标变得难以看清,所以最终效果可能反而不好。 但是,Edge浏览器是不会存在这种问题的。为什么呢?...Android系统其实给了我们API来控制状态栏图标的颜色,但是只能设置成黑、白这两种颜色,而不可以将状态栏图标改成五颜六色的样子。...默认情况下,系统会认为我们拥有的是一个深色的状态栏,那么状态栏上面的图标自然就应该白色的,因为只有这样才能看得清上面的图标。...因此,现在的问题就转移成了,我们如何才能识别一张背景图的指定区域是属于深色还是浅色? 非常幸运,在Android系统上我们是可以做到这一点的,只需要借助Google提供的Palette库即可。
返回堆栈 默认操作 II . 返回堆栈 保留所有元素操作 III . 返回堆栈 清除除根元素外所有元素操作 IV . 返回堆栈 清除指定的 Activity V . 总结 I ....返回堆栈 默认操作 ---- 任务进入后台 然后 恢复前台运行 返回堆栈 的 默认处理机制 : ① 长时间挂起任务 : 如果任务长时间在后台挂起 , 系统会清除 该任务返回堆栈中除 根 Activity...返回堆栈 保留所有元素操作 ---- 上面讲解了默认状态下 , 任务进入后台的处理机制 , 如果不想任务中的返回堆栈被清空 , 那么可以设置 android:alwaysRetainTaskState...返回堆栈 清除除根元素外所有元素操作 ---- 上面讲解了默认状态设置 , 任务必须保留状态设置 , 还剩下一个 任务必须 清空 除 根元素之外的所有元素 的设置 , 即 android:clearTaskOnLaunch...属性 默认值 : 该属性值默认为 false , 即默认情况下 任务进入后台 , 短时间内回到前台 不会清空 返回堆栈中的元素 ; 3 . android:clearTaskOnLaunch 属性设置起作用的前提条件
好了废话不多说了,沉浸式状态栏现在已经非常普及了,不然请自行脑补一个画面(主题是蓝色的界面搭配白色,后来头顶冒出来一块红色的系统自带状态栏, 那画风。。。。)...沉浸式状态栏如下 : 再来一张 其实沉浸式状态栏不仅仅指的是顶部的状态栏,基于手机的不同,还有底部的手机也可以改成类似的 ,前提是手机得有这种底部的按钮: 如下 效果介绍完了,接下来就是实现了...如果是4.4之前版本的手机的话,是不会产生沉浸式状态栏的效果的, 而且部分手机会已经帮助你实现了,我这里是乐视2 版本是 6.0 已经帮我实现了部分界面的沉浸式; 代码片段 ; /**...* 沉浸式状态栏 * 当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 */ private void initState() { if (Build.VERSION.SDK_INT...注释即为使用默认的效果 } } 然后将这份代码放入你的BaseActivity中去,记得是onCreate方法中: 然后去挨个配置 ,这两行代码写在每一个要使用沉浸式的布局里
="android:windowTranslucentNavigation">true 其中 android:windowTranslucentStatus表示是否要填充顶部的状态栏区域...android:windowTranslucentNavigation表示是否要填充底部的状态栏区域 这两种样式的目的就是默认让应用的内容放置到系统栏的下边,如果仅仅想扩展背景样式到系统栏下边,则需要设置...android:fitsSystemWindows为true, 会增加试图的Pading值让你的布局恢复正常大小,并且可以将背景扩大。...Android系统大于等于4.4的系统才执行沉浸式的功能 if (android.os.Build.VERSION.SDK_INT > 18) { Window window...View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } // 获取手机状态栏高度
padding ,因为这一块 padding 没法在系统状态栏上。...Android 5.0 到了 Android 5.0 关于状态栏又发生了变化,新增了直接对状态栏的操作,直接改变状态栏颜色,这一点在之前版本是没有的,Android 4.4 虽然可以实现改变状态栏颜色的效果...,但其实实际上是将我们的布局占据了状态栏,然后状态栏是透明的。...Android5.0透明no.png Android 6.0 在 Android 6.0 添加了可以更改状态栏字体颜色的方法,别的都是和 Android 5.0 一样的。 状态栏字体颜色默认是白色。...如果我们希望系统视图不覆盖UI的某些部分,则可以在视图层次结构中使用此方法。 默认情况下,只是将 insets(将 insets 设置为 0 )做为 View 的 padding。并且返回true。
原本的快捷键是 Ctrl+Alt+←返回上一次浏览位置back Ctrl+Alt+→返回下一次浏览位置forward 但是windows的这个快捷键被占用了,是切换屏幕的显示方向。...然后在键盘按下你想要的快捷键即可,这样就能用Ctrl+Alt+,返回back,用Ctrl+Alt+/返回forward
前言 Android沉浸式体验有几个注意点 Android4.4(api19)及以上的版本才支持 Android5.0(api21)及以上的版本状态栏多了一个半透的黑色层 Android5.0(api21...values-v21是因为 Android5.0(api21)的黑色层通过style去掉后 应用切出去后再切进来后会再次出现 所以用代码去除 values文件夹下的styles.xml 状态栏的黑色半透层 在重新切回应用时也不会被再次添上 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val window...WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) window.statusBarColor = Color.TRANSPARENT } 接下来就是设置状态栏的背景了...android:background="@android:color/holo_blue_light" 这种方式首先最外层必须要设置为背景色 它会用该背景色来填充状态栏和虚拟按键栏 一个页面只有一个该属性会生效
大家好,又见面了,我是你们的朋友全栈君。...状态栏全透明步骤: 1,反编译SystemUI.apk 2,SystemUI\res\layout\navigation_bar.xml 找到 将后面的 android:background=”#FF000000...″改为android:background=”#00000000″ 3,SystemUI\res\layout\status_bar.xml 找到 将后面的android:background=”@drawable...ff000000 改为#00000000 5,反编译android.policy.jar 6,android.policy.jar.out\smali\com\android\internal\policy...impl\PhoneWindowManager.smali 找到.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I 以及这一段结尾的
和尚我最近正在处理客户端顶部沉浸式展示图片,借此整理了一下和尚自己研究测试的沉浸式状态栏。...沉浸式状态栏大家都很熟悉,即 APP 界面图片延伸到状态栏, 应用本身沉浸于状态栏,即顶部不会默认展示系统的黑条。和尚我技术有限,理解不透彻,仅分享一下自己应用测试中可以呈现的几种样式。 ?...中添加 android:fitsSystemWindows="true",这个很重要,可以使背景图片延伸至状态栏,当然在 Java 文件中设置一样的效果; 操作栏 Toolbar 在测试过程中会出现底部虚拟操作按纽栏目被隐藏,如下图,此时应注意设置 systemUiVisibility 属性。...无状态栏 Toolbar 样式一般不会在日常中使用,但是测试的过程中发现,分享给大家,其根本原因是主题中 android:windowFullscreen">true</item
但colorPrimaryDark只能设置固定色值的颜色,无法设置渐变色。所以,通过colorPrimaryDark无法实现状态栏的渐变色效果。 下面通过实现如下图1效果,举例具体说明。...> android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 定义状态栏颜色..."/> 上述方法是只对普通的Activity有效,若是AppCompatActivity使用上述的方法无法实现状态栏的渐变效果。...方法二:(针对AppCompatActivity) AppCompatActivity需要使用Toolbar来替代ActionBar实现状态栏渐变的效果。 1....综合上述,可根据界面所要的效果实现状态栏的渐变色效果。
在android系统中会给textview中的文字,默认给于一定的padding.有时候我们想要view紧紧包裹住文字,这时可以用如下的属性进行设置 android:includeFontPadding...="false" 这样就可以实现,但是实际效果中还是会有一点间距.大家如果有更好的方式,欢迎告知
在代码中实现对状态栏颜色的控制,(只对系统版本在android4.4及以上的有效) 可以创建一个子Activity,其他Activity继承此类,以达到代码重用 @Override protected...项目地址 源码分析 //TODO keng 参考链接 SystemBarTint 安卓自定义状态栏颜色 003android初级篇之Android开发中颜色
也许有时候你会有这样的需求:得到状态栏或者标题栏的高度。 怎么办?...恩,方法是有的,也许还不止一个,下面提供一个作为参考: 1.获取状态栏高度: decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView...有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。...于是,我们就可以算出状态栏的高度了。...int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); //statusBarHeight是上面所求的状态栏的高度
对 sd卡上sqlite 数据库的操作 Android默认的数据库位置是在 data\data\packageName\databases\目录下的; 有时候因为业务需要我们需要操作位于sd卡的数据库,...就可以通过重写 Context类的方法来实现 重写 ContextWrapper 我们在创建SqliteOpenHelper实例的时候需要传入一个Context 实例,就是通过他来实现的 public...TAG = "DBContext"; public DBContext(Context base) { super(base); } /** * 返回...数据库文件 * 重写此方法 返回我们位于sd卡的数据库文件 * @param name * @return */ @Override public...().getPath()+"/dbDemo",name); return file; } /** * Android 4.0后会调用此方法 还有一个2.3以前的方法就重写了
sky-mxc 总结 转载注明出处:https://sky-mxc.github.io 对 sd卡上sqlite 数据库的操作 Android默认的数据库位置是在 data\data\packageName...\databases\目录下的; 有时候因为业务需要我们需要操作位于sd卡的数据库,就可以通过重写 Context类的方法来实现 重写 ContextWrapper 我们在创建SqliteOpenHelper...TAG = "DBContext"; public DBContext(Context base) { super(base); } /** * 返回...数据库文件 * 重写此方法 返回我们位于sd卡的数据库文件 * @param name * @return */ @Override public...().getPath()+"/dbDemo",name); return file; } /** * Android 4.0后会调用此方法 还有一个2.3以前的方法就重写了
important; } 很多时候需要禁用移动设备的默认行为,比如长按一个a链接的按钮(href写的是javascript:;)会提示是否打开/取消。...而-webkit-touch-callout 在ios8中是失效的,查资料说是一个bug。
paddingTop,由于调用此方法之前add了一个paddingTop高度的view用于沉浸式状态栏 childView.setFitsSystemWindows(true...* * @param activity 需要设置的activity * @param color 状态栏颜色值 * @param...* * @param color color值 * @param alpha alpha值 * @return 最终的状态栏颜色 */ private...paddingTop,由于调用此方法之前add了一个paddingTop高度的view用于沉浸式状态栏 childView.setFitsSystemWindows(true...* * @param activity 需要设置的activity * @param color 状态栏颜色值 * @param alpha 透明值
非常多的Android应用左上角都有返回button 在默认的情况下 ADT会默认给一个返回图标 而作为开发需求 非常多都要求定制一个新的图标 在Android的站点上 发现了2种能够更改的方法 1...#setHomeAsUpIndicator 说明当前的最小API等级低于18 那么就參考另外一种方法了 2....中新增一种style android...--返回icon--> 然后在AndroidManifest.xml中 在其Activity 的theme中设置成该style android:name="com.logic.activity.Activity1" android:theme="@style/style_titlebar_normal"
点击命令可以跳转到命令详解的文章哦 命令 作用 then() 将上一条命令返回的结果注入到下一个命令中 and() 创建一个断言。...断言将自动重试,直到它们通过或超时 should() and() 的别名 invoke() 对上一条命令的结果执行调用方法操作 its() 获取属性值 as() 取别名 within() 限定命令作用域...备注 因为 and 和 should 的用法是一样的,只是方法名不一样而已 所以就没有另外写一篇 should 的讲解了,直接参考 and 的文章即可,然后将 and 换成 should 就成啦
今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程。 最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过程中,页面返回上一页面的几种实现方式。...使用系统提供的Action Bar Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、...但有一点要注意的是,如果要在Java代码中操作ActionBar,例如setTitle,指定其文字,必须在onStart方法中进行,而不能是onCreate方法,因为在系统周期中,onStart方法时View...,例如点击action bar时禁止后退,只需要在onOptionsItemSelected方法中处理android.R.id.home的事件就可以了。...机器上的back按键 处理此按键的后退功能,只需要在onBackPressed方法中就可以。
领取专属 10元无门槛券
手把手带您无忧上云