前言
Android开发过程中,总是需要与IOS坐比较,每次产品经理都要问,为什么IOS能做到,Android做不到。并不是Android做不到,主要原因是IOS下,有些控件是有现成的组件库的,Android没有,所以Android需要去自己绘制。
上次产品经理就让我写一个功能,需要在页面滑动时,顶部导航栏需要从透明到模糊渐变,一定程度后不再改变。查阅了网上各种资料,发现关于Android高斯模糊的确有很多文章,但他们都是对于一个静态的页面或者图片做模糊,使用RenderScript高效计算平台进行模糊就好了。但我需要的效果中,页面是动态的,底下View是一直在改变的,怎么让他在需要的区域模糊呢。
废话不多说,先看实现效果,点击看视频效果,更加清晰流畅。
上面的效果是大家想要的吗?
实现方式
其实我的思路很简单,就只有四步,获取位置-裁剪-转化-模糊
Step 1 通过onLayout方法,先获取目标区域的位置
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);