背景
4月份开发直播时,有一个需求,需要实现一个RecylerView顶部渐变的效果
实际效果
解决思路
图层重叠处理(本质是alpha叠加出来的效果)
实现流程
保存一个图层,然后画渐变,最后再和原来的图层进行合并,达到这个效果。
涉及知识(不知道的请google):
* 主要通过RecyclerView 的 ItemDecoration类进行解决。
* Paint、Canvas、Shader、Xfermode(图层融合)
* Gradient(渐变)
详细过程:
图层叠加需要通过Xfermode,Xfermode主要是让不同图层融合,但是有个前提,就是不同图层需要由相同的画笔(Paint)绘制而成。 这里就抛出了几个问题:
1. 如何获取RecyclerView上每个Item的图层?
2. 获取到图层,如何让该图层的画笔和渐变图层的画笔保持一致?