Blur(高斯模糊)

大约 1 分钟

Blur(高斯模糊)

高斯模糊(毛玻璃)组件,盖住其他view可进行动态高斯模糊布局位置下方的视图

组件使用示例open in new window

属性

支持所有基础属性,此外还支持:

blurRadius

高斯模糊半径,最大为12.5f(默认:10f)

参数描述类型
radius高斯模糊半径Float

targetBlurViewNativeRefs

想要模糊的View的nativeRef列表,可提高在Android平台上的模糊性能,建议设置

参数描述类型
refs想要模糊的View的nativeRef列表List<Int>
@Page("demo_page")
internal class TestPage : BasePager() {
    private lateinit var imageRef: ViewRef<ImageView>
    
    override fun body(): ViewBuilder {
        val ctx = this
        return {
            View {
                attr {
                    size(200f, 100f)
                }
                // 背景图
                Image {
                    ref { ref -> ctx.imageRef = ref }
                    attr {
                        absolutePositionAllZero()
                        src("https://wfiles.gtimg.cn/wuji_dashboard/xy/starter/baa91edc.png")
                    }
                }
                Blur {
                    attr {
                        height(50f)
                        blurRadius(3f)
                        // 指定要模糊的View的nativeRef,提高模糊性能
                        targetBlurViewNativeRefs(listOf(ctx.imageRef.nativeRef))
                    }
                }
            }
        }
    }
}

blurOtherLayer

是否模糊其他单独的layer。目前只有 Android 使用到,用于开启模糊 TextureView。

注意: 如果设置了 targetBlurViewNativeRefs 属性的话,此属性无效。

参数描述类型
blur是否模糊其他单独的layerBoolean
@Page("demo_page")
internal class TestPage : BasePager() {
    override fun body(): ViewBuilder {
        return {
            attr {
                allCenter()
            }
            Image {
                attr {
                    absolutePosition(0f,0f,0f,0f)
                    size(pagerData.pageViewWidth, pagerData.pageViewHeight)
                    src("https://picsum.photos/id/221/1500/2500")
                }
            }
            Blur {
                attr {
                    size(pagerData.pageViewWidth, 100f)
                    blurRadius(10f)
                }
            }
            Blur {
                attr {
                    marginTop(100f)
                    size(pagerData.pageViewWidth, 100f)
                    blurRadius(1f)
                }
            }
        }
    }
}














 
 
 
 
 
 
 
 
 
 
 
 
 



事件

支持所有基础事件