android 开源 高斯模糊_android高斯模糊你所不知道的坑

本文已经发布在鸿洋公众号

高斯模糊的UI效果相信大家多多少少都有接触过,只是可能并没有真正在实际项目中去使用过,这次产品需求中正好涉及到了高斯模糊的展示效果,随便去研究了下这块东西,先上一个最终的效果图。实际真机效果还是流畅的,录屏出来有点卡顿的感觉。

ezgif-2-683a6ac3cd.gif

从效果还是可以看出,当点击签到按钮的时候,会伴随签到页面和分享按钮的自下向上的弹出效果,这个动画直接使用属性动画就能实现没什么好说的,最主要的就是后面的高斯模糊效果,仔细看的话可以发现是有一个从清晰逐渐模糊的渐变效果,这个不是本文重点,这里想说的是在实现自定义高斯模糊效果的时候自己所遇到的一个坑。

高斯模糊一个隐藏的坑

实际上高斯模糊效果本身是没什么好说的,只要你去网上搜索一下相信能找到不少相关的实现,其中对于android开发来说最主要的实现方法就是使用renderscript方法去实现,自己实现模糊效果的时候也是参考这些代码来完成,写这篇文章主要不是来说高斯模糊是如何实现,而是想把自己在实现这个高斯模糊效果中遇到的一个大坑和大家分享下,这个坑大家不一定遇到到,尤其是从github直接找一个现成的高斯模糊控件,通过看源码几乎不可能发现这个大坑,只有真正去实现过这个效果的人才有可能发现这个问题,很明显自己就属于后者,还正巧踩到了这个坑上,这里就说下自己踩坑埋坑的心路历程。

高斯模糊实现思路

还是简单说下高斯模糊实现的简单思路,就是得到原图bitmap然后通过renderscript处理获取到模糊后的bitmap,自定义的view在ondraw中去draw该bitmap。思路就是这么简单,这里说下需要注意的几个点。

(1)如何得到模糊后的bitmap,这个就是通过renderscript来实现的,模板代码如下:

//创建一个缩小后的bitmap

Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);

//创建将在ondraw中使用到的经过模糊处理后的bitmap

Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

//创建RenderScript,ScriptIntrinsicBlur固定写法

RenderScript rs = RenderScript.create(context);

ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值