本篇文章来自 grp0916 的投稿,篇幅虽短,但是实用性很强。同时也表明,一个好的开源库能起到事半功倍的效果。
grp0916 的博客地址:http://blog.csdn.net/grp0916
找遍了网上所有关于实时高斯模糊的效果,并没有现成的例子,所以自己东拼西凑,加上改动,终于实现出来了 ,效果图如下:
本示例是在ConvenientBanner这个开源库demo上改的,自己写一个浪费时间,直接拿来用,地址为:
https://github.com/saiwu-bigkoo/Android-ConvenientBanner
在找遍了所有高斯模糊的算法代码后,发现android-stackblur的java实现是最快的,地址为:
https://github.com/kikoso/android-stackblur
先说一下大致思路,非常简单。模糊的区域其实是一张ImageView,当视图发生变化,在滚动的时候,截取ImgeView下面的视图,进行模糊处理,然后放在ImageView上,下面说一下细节:
因为要实时监听banner控件在发生变化,所以我用到了这个方法:
ViewTreeObserver.OnScrollChangedListener
见名知意,当发生滚动的时候,进行回调。那给谁设置监听器呢?谁发生变化就给谁设置监听器:
convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner);
observer