尝试Android的毛玻璃(Blur)效果

本文介绍了如何在Android项目中实现全屏的毛玻璃效果,通过获取屏幕View,将其转换为Bitmap,然后利用StackBlur算法或RenderScript的ScriptIntrinsicBlur进行模糊处理。文章提到了实现过程中的关键步骤,包括Bitmap的尺寸压缩、可变性设置以及注意的效率问题。最后,将模糊后的Bitmap转换为Drawable并应用到任意View的背景上,以达到类似iOS系统的毛玻璃视觉体验。
摘要由CSDN通过智能技术生成

最近项目中遇到了毛玻璃效果,实现过程中在github上查了很多代码。

看过一些方法的实现,大多都是需要一张图片,一个ImageView。

由于项目的限制,我需要像苹果系统那样,把整个屏幕都变成毛玻璃效果,因此筛选之后实现了

整理一下逻辑:

1、获取屏幕View

2、将View转换为Bitmap

private Bitmap view2Bitmap(View v) {
    int w = v.getWidth();
    int h = v.getHeight();
    Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bmp);
    c.drawColor(Color.WHITE); //如果不设置颜色,默认是透明背景
    v.layout(0, 0, w, h);
    v.draw(c);

    return bmp;
}

3、压缩Bitmo(尺寸压缩,可选,后面作解释)

int scaledRatio = 10; //尺寸压缩比例
bmp = Bitmap.createScaledBitmap(bmp, bmp.getWidth() / scaledRatio, bmp.getHeight() / scaledRatio, false);

4、毛玻璃效果

方法一:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值