android 滚动条透明度,Android 沉浸式状态栏及View滑动渐变效果与启发

先看看Demo效果图:

1c0d21c118771b72115038b0fa87777d.gif

如Demo所示,当向上滑动列表时,顶部的View颜色发生了渐变,从半透明变成了不透明,以及顶部View的布局与状态栏融合在了一起。要实现上面的这个效果大致是:1.设置状态栏透明或者半透明 。2.监听列表的滑动距离来控制View背景色的渐变。

1.沉浸式状态栏(状态栏透明设置)

1.1 第一种方法:可以通过直接修改状态栏的属性,必须在Android5.0以上才支持,也就是api21,所以要创建一个资源文件夹,命名为:values-v21,然后在该文件夹下新建styles.xml文件,再在文件里设置属性。如下图:

5f101e85e03d8f7a3e1b782626c9949f.png

1.2 第二种方法:通过代码来设置属性,(推荐使用这种的方法,因为兼容性更好)。如下图代码:

407ff319c1e33e91dac16b2ebb32f91b.png

然后在Activity或者Fragment调用StatusbarUtils的statusBarColorTransparent方法即可实现沉浸式状态栏。

2.RecyclerView、ScrollView的滚动监听,通过判断滚动的距离,改变顶部布局的样式

2.1 通过RecyclerView实现

2.1.1 布局文件:

2e0010ab01531c53e3cb2d1f0d8349b8.png

39789c40100a4968b6e8d3daaf281730.png

8b1571c03aafdcf865b45c0674cddc0f.png

通过上面的三个布局文件,就能组合出下面这张原理图:

91b67a3909f4bf87dea09fa547a9ab71.png

当鼠标拖动列表从A0点滚到A1点时(也就是轮播图底部与标题栏底部重合时),标题由半透明的浅蓝变成不透明的深蓝的过程:

e708c15a260196e9ff0b5cfdd5973ef0.gif

2.1.2 RecyclerView滚动监听的代码部分:

af611fd623c926275f12843bd69f0511.png

2.2通过ScrollView实现

2.2.1 布局文件:

948a01469bca2990e590a630ff6c8eae.png

2.2.2 ScrollView滚动监听的代码部分:

6063684ec64cac4a8972c3a251b66f9c.png

总结与启发:

1.RecyclerView滚动接口回调的dy与ScrollView滚动接口回调的scrollY是有区别的,RecyclerView是返回每次滚动的距离,需要进行累加再If判断;ScrollView是不需要累加,直接返回总距离,直接进行If判断了。

2.除了可以通过滚动监听,改变状态栏的颜色透明度外,还可以做很多,比如控制顶部某个view的显示与隐藏,加上一些动画(入场动画,出场动画…)或者音效,或者插入gif图等等,实现很炫酷的效果。

今天的分享结束了,再见~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值