Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

蹉跎莫遣韶光老,人生唯有读书好。这篇文章主要讲述Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变相关的知识,希望能为你提供帮助。
最近需求要做一个拉缩渐变的状态栏,往上拉的时候,需要显示actionBar,这个过程是渐变的,顶部的图片背景能实现拉缩,并且还要实现状态栏沉浸式
效果如如下:

Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

  • 实现状态栏的透明化
  • 实现ScrollView的拉缩
  • 实现ActionBar的渐变
实现
【Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变】1、至于试下实现ScrollView的拉缩这个效果很简单重写onTouchEvent方法,利用滑动的垂直方向的距离,然后在设置图片的大小
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

这里要注意的是:在手指释放的时候需要进行恢复图片的高度
如果有兴趣的话可以加入android工程师交流Q群:752016839 主要针对Android开发人员提升自己,突破瓶颈,相信你来学习,会有提升和收获。在这个群里会有你所需要的内容。
2、ActionBar的透明度很简单了,在onScrollChanged里进行操作即可
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

3、至于沉浸式状态栏就很简单了,之前写过帖子
  • 你这样玩过android沉浸式状态栏吗—教你玩出新花样?
  • Activity样式 、状态栏透明、屏幕亮度问题全面解析
这里我简单的封装了一些工具类
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

在相应的Activity或基类执行这段代码就ok了。
可见在4.4到5.0的系统、5.0及以上系统的处理方式有所不同
除了这种代码修改额方式外,还可以通过主题来修改,需要在values、values-v19、values-v21目录下分别创建相应的主题:
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

给相应Activity或Application设置该主题就ok了。
两种方式根据需求选择就好了,到这里我们就完成了第一步,将状态栏透明化了。
完成了第一步,我们开始给状态栏加上想要的色彩吧!
在values、values-v19目录添加如下尺寸:
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

关于25dp,在有些系统上可能有误差,这里不做讨论!
2.1 页面顶部使用Toolbar(或自定义title) 一般情况状态栏的颜色和Toolbar的颜色相同,既然状态栏透明化后,布局页面延伸到了状态栏,何不给Toolbar加上一个状态栏高度的顶部padding呢:
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

效果图下:
Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片

Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变

文章图片


    推荐阅读