更新记录

1.0.0(2024-12-04)

2024-12-14

首次发布 V1.0.0


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.28,Android:5.0,iOS:不确定,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

bsx-blur 适用于uniapp x的Android 端Blur处理

开发文档

UTS 语法 UTS API插件 UTS uni-app兼容模式组件 UTS 标准模式组件 Hello UTS

实现

本插件使用Blurry库 实现兼容性的视图模糊处理功能(内部使用的是RenderScript)支持Android 5+版本,感兴趣的可以看下源库。另,Android 12+ 系统本身提供有了renderEffect 方法去处理模糊,效果也挺好的。还有就是Android提供了RenderScript函数的替代工具包RenderScript Intrinsics Replacement Toolkit ,源码的;不过,Github上有人封装了下,renderscript-toolkit 感兴趣的也可以看看。

话回此插件,本人也是小白,纯粹搬运代码成分较多!望各位大佬手下留情~

方法介绍

统一返回

{
    status: string, // succeed or failed
    message: string  // 处理的信息
} as UTSJSONObject
函数名 参数 说明
bsxBlurRemoveRV duration:number=500
移出效果时的动画时长
用于移出
已开启应用屏幕模糊的效果
bsxClearViewBlur viewId : string
uvue页面内的view id
用于清除已应用的View的模糊效果。注意!这里处理的是通过bitmap
进行的模糊直接清除Image 资源;即,若要使用此功能,
那么应用模糊效果的view必须有一个副view。避免清除正常显示的图片
bsxBlurScreenOverlay radius : number = 14,
sampling : number = 2,
animated : number = 0,
color : string = ""
用于模糊应用当前整个屏幕(不包含终端状态栏!)
radius 模糊半径【可选】,默认14
sampling 缩放大小bitmap的缩放分母即几分之一 【可选】默认2
animated 动画时间 【可选】默认0
color 参数Android 支持的颜色 #RGB / #AARRGGBB
【可选】默认空即透明。另,录入错误的字符串会默认透明处理。
bsxBlurFrmViewByBitmap viewGroupId : string,
imageViewId : string,
... 其他可选参数同上
用于通过提供的view获取bitmap 模糊应用于imageview。
参数均为uvue页面内的view id  【必填】
bsxBlurFrmViewToView 同上 效果同上
bsxBlurFrmBitmapDynamic 同上 效果同上;循环调用会先清除之前的bitmap资源。
可以用于某些动态的场景,例如遮罩层背景动态模糊处理,
实际上就是间断执行上面的函数。下面有使用例子介绍:
调用示例
import { bsxBlurScreenOverlay, bsxBlurFrmViewByBitmap, bsxBlurFrmViewToView, bsxBlurFrmBitmapDynamic, 
    bsxClearViewBlur, bsxBlurRemoveRV } from "@/uni_modules/bsx-blur"
<view class=""  style="margin-top: 20px; display: flex;flex-direction: row; justify-content: space-around;align-items: center;">

    <view id="image1" class="" style="width: 45%;">
        <image id="blurimage1"  src="/static/写乐保介.jpg" mode="scaleToFill" style="width: 100%;"></image>
            <!-- 如果想调用清除 blur 则应使用遮罩image -->
        <image id="blurimageadd" mode="scaleToFill" style="position: absolute; width: 100%;"></image>
    </view>
    <view id="image2" class="" style="width: 45%;">
        <image id="blurimage2" src="/static/写乐保介.jpg" mode="scaleToFill" style="width: 100%;"></image>
    </view>
</view>

<view class="" style="margin-top: 20px;display: flex;flex-direction: row; justify-content: space-around;align-items: center;">
    <view id="image3" class="" style="width: 45%;">
        <image id="blurimage3"  src="/static/写乐保介.jpg" mode="scaleToFill" style="width: 100%;"></image>
    </view>
    <view id="image4" class="" style="width: 45%;">
        <image id="blurimage4" src="/static/写乐保介.jpg" mode="scaleToFill" style="width: 100%;"></image>
    </view>
</view>
bsxBlurFrmViewByBitmap("image1", "blurimageadd", 2, 5, "")

bsxBlurFrmViewToView("image2", "blurimage2", 20, 5, "")

bsxBlurFrmViewByBitmap("image3","blurimage3",3, 1, "#59ffff00")

bsxBlurFrmViewByBitmap("image4","blurimage4",3, 1, "#59ffb6c1")

// 可以接收返回值 看处理的结果
let res = bsxClearViewBlur('blurimageadd')
console.log('clearViewBlur', res)
场景实现
遮罩层背景动态模糊(顶部栏背景动态模糊、底部栏背景动态模糊、弹出对话框背景模糊、抽屉层背景模糊等)

这种场景勉强可以用用,我做了测试,计时间隔100ms 去执行动态背景模糊。间隔太低,卡,间隔太高,拖影顿挫感强。实际项目不建议用!

没有找到好的动态模糊库,如果有的话,请分享一下哦。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问