Android高斯模糊(毛玻璃结果)蒙层库-ShapeBlurView

手机软件开发 2024-10-2 12:42:12 103 0 来自 中国
ShapeBlurView

ShapeBlurView库是一个高斯模糊(毛玻璃结果)蒙层库。Like iOS UIVisualEffectView
不知大家做需求的时候是否有如许的结果要求:


大家熟悉的Android常用图片加载库,比如Glide 可以对图片举行毛玻璃结果的加载(实现不睁开说了)
但是都是对整个要加载的图片举行高斯模糊结果,对应局部这种比力难处置惩罚,这个库就能实现如许的结果。
固然,你对整个图片盖一层,也能到达Glide高斯模糊加载的结果。
先看看结果:
网上有其他大神开源的库,但都有些美中不敷。没有边框、没有切圆角等功能。
此ShapeBlurView库支持矩形、圆形、椭圆;边框、边框自界说颜色、自界说边框粗细;矩形时支持切圆角
而且可以支持对4个角分别切圆角。

利用步骤

1、在添加maven地址的地方添加:
    repositories {        maven { url 'https://jitpack.io' }    }2、在必要利用的gradle文件添加依靠:
implementation 'com.github.centerzx:ShapeBlurView:1.0.5'implementation 'androidx.appcompat:appcompat:***'appcompat:***根据你自己的版本添加
利用阐明

(1)Xml结构文件中引用

            <net.center.blurview.ShapeBlurView                android:id="@+id/blurview"                android:layout_width="300dp"                android:layout_height="100dp" />默认结果代码如上,固然width、height根据需求而定
(2)可用属性

        <attr format="dimension" name="blur_radius"/>        <attr format="float" name="blur_down_sample"/>        <attr format="color" name="blur_overlay_color"/>        <attr format="dimension" name="blur_corner_radius"/>        <attr format="dimension" name="blur_corner_radius_top_left"/>        <attr format="dimension" name="blur_corner_radius_top_right"/>        <attr format="dimension" name="blur_corner_radius_bottom_left"/>        <attr format="dimension" name="blur_corner_radius_bottom_right"/>        <attr format="dimension" name="blur_border_width"/>        <attr format="color" name="blur_border_color"/>        <attr name="blur_mode">            <enum name="rectangle" value="0"/>            <enum name="circle" value="1"/>            <enum name="oval" value="2"/>        </attr>blur_radius:高斯模糊半径,值越大越模糊,0<r<=25blur_down_sample:采样参数blur_overlay_color:毛玻璃覆盖颜色blur_corner_radius:矩形时圆角半径(4个角一样),其他几个corner属性大家应该能看懂blur_border_width:边框线条宽度blur_border_color:边框线条颜色blur_mode:样式,rectangle:矩形;circle:圆形;oval:椭圆(3)代码中对熟悉举行设置

        blurview?.refreshView(            ShapeBlurView.build().setBlurMode(BlurMode.MODE_RECTANGLE)                .setCornerRadius(BlurCorner.TOP_LEFT, 50f).setBorderWidth(10f)                .setBorderColor(                    R.color.teal_200                )        )调用类方法refreshView,利用简便build模式举行值设置,终极只调用一次invalidate()
如许克制传统的setXXX方法内里设置一个值就去调用invalidate()举行重绘
(4)肴杂

-keep class android.support.v8.renderscript.** { *; }-keep class androidx.renderscript.** { *; }(5)项目开源地址

GitHub地址
高斯模糊结果参考RealtimeBlurView库,感谢:RealtimeBlurView
项目库如有不敷和错误的地方,欢迎大家讨论指正!以为不错,也盼望大家资助Star下,感谢!
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 11:09, Processed in 0.156457 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表