Skip to content

BlurViewGroup

BlurViewGroup is a blur-enabled container component. It applies real-time blur behind its own content and then renders child views on top.

Use Component

xml
<com.qmdeve.blurview.widget.BlurViewGroup
    android:id="@+id/blurContainer"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    app:blurRadius="10dp"
    app:overlayColor="#AAFFFFFF"
    app:cornerRadius="16dp"
    app:downsampleFactor="2.5">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Blur Container"
        android:textStyle="bold" />

</com.qmdeve.blurview.widget.BlurViewGroup>
java
BlurViewGroup blurGroup = new BlurViewGroup(context, null);
blurGroup.setBlurRadius(10f);
blurGroup.setOverlayColor(0xAAFFFFFF);
blurGroup.setCornerRadius(16f);
blurGroup.setDownsampleFactor(2.5f);

TextView child = new TextView(context);
child.setText("Blur Container");
BlurViewGroup.LayoutParams params = new BlurViewGroup.LayoutParams(
    BlurViewGroup.LayoutParams.WRAP_CONTENT,
    BlurViewGroup.LayoutParams.WRAP_CONTENT
);
params.gravity = Gravity.CENTER;
blurGroup.addView(child, params);
kotlin
val blurGroup = BlurViewGroup(context, null)
blurGroup.setBlurRadius(10f)
blurGroup.setOverlayColor(0xAAFFFFFF.toInt())
blurGroup.setCornerRadius(16f)
blurGroup.setDownsampleFactor(2.5f)

val child = TextView(context).apply {
    text = "Blur Container"
}
val params = BlurViewGroup.LayoutParams(
    BlurViewGroup.LayoutParams.WRAP_CONTENT,
    BlurViewGroup.LayoutParams.WRAP_CONTENT
).apply {
    gravity = Gravity.CENTER
}
blurGroup.addView(child, params)

Attribute Description

Attribute NameTypeDefault ValueDescription
app:blurRadiusdimension10dpBlur radius used by the container renderer.
app:overlayColorcolor#AAFFFFFFOverlay color drawn over the blurred background.
app:cornerRadiusdimension0dpGlobal corner radius.
app:topLeftCornerRadiusdimensioncornerRadiusTop-left corner radius override.
app:topRightCornerRadiusdimensioncornerRadiusTop-right corner radius override.
app:bottomLeftCornerRadiusdimensioncornerRadiusBottom-left corner radius override.
app:bottomRightCornerRadiusdimensioncornerRadiusBottom-right corner radius override.
app:downsampleFactorfloat0Downsample factor. 0 enables automatic downsampling.
android:layout_gravity (child)enumtop/startChild gravity used by BlurViewGroup.LayoutParams.

API Reference

Method NameDescription
setBlurRadius(float)Set blur radius.
setBlurRounds(int)Set native blur iterations.
getBlurRounds()Get native blur iterations.
setDownsampleFactor(float)Set downsample factor.
setOverlayColor(int)Set overlay color.
setCornerRadius(float)Set all corner radii at once.
setTopLeftCornerRadius(float)Set top-left corner radius.
setTopRightCornerRadius(float)Set top-right corner radius.
setBottomLeftCornerRadius(float)Set bottom-left corner radius.
setBottomRightCornerRadius(float)Set bottom-right corner radius.
getTopLeftCornerRadius()Get top-left corner radius.
getTopRightCornerRadius()Get top-right corner radius.
getBottomLeftCornerRadius()Get bottom-left corner radius.
getBottomRightCornerRadius()Get bottom-right corner radius.
getOverlayColor()Get overlay color.
getBlurredBitmap()Get the latest blurred bitmap.
release()Release blur resources.