Skip to content

HokoBlurDrawable is an Android component which provides dynamic blur effect.

Notifications You must be signed in to change notification settings

Fan095/HokoBlurDrawable

 
 

Repository files navigation

HokoBlurDrawable

HokoBlurDrawable is an Android component which provides dynamic blur effect.

1. Introductions

  • Function:

    Dynamic blur, real-time blurring of the background

  • Features:

    • Multiple algorithms: Box、Stack and Gaussian algorithms. Provide different blur effect;
    • 🚀iOS-like dynamic backgroud blur: Compared to using RenderScript to process bitmaps, the component has better performance and effect.

2. Dynamic background blur

Dynamic Blur provides real-time background blurring of View and ViewGroup, not for Bitmap implementations. The component will blur the area where the View is located.

Add dependency

implementation 'com.hoko:blur-drawable:0.0.1'

To add background blur to the View, just set the BlurDrawable to the View background.

final BlurDrawable blurDrawable = new BlurDrawable();
View view = findViewById(R.id.test_view);
view.setBackgroundDrawable(blurDrawable);

Change the blur parameters:

blurDrawable.mode(mode)
blurDrawable.radius(radius)
blurDrawable.sampleFactor(factor)

Add blur color mixture(OverlayColor)

blurDrawable.mixColor(color)
blurDrawable.mixPercent(percent) //0 ~ 1.0

DISABLE/ENABLE background blur

blurDrawable.disableBlur();
blurDrawable.enableBlur();

HokoBlur already contains three common ViewGroups that implement background blur, including BlurFrameLayout, BlurLinearLayout, and BlurRelativeLayout.

// blur animation
ValueAnimator animator = ValueAnimator.ofInt(0, 20);
animator.setDuration(2000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        mFrameLayout.getBlurDrawable().setBlurRadius((Integer) animation.getAnimatedValue());
    }
});

动态模糊

动态模糊组件HokoBlur

1. 描述

  • 组件主要提供以下功能:

    动态模糊,对背景的实时模糊

  • 组件主要的特性:

    • 多种算法,包括Box、Stack和Gaussian算法,满足不同的模糊效果;
    • 🚀类似iOS的动态背景模糊,相比使用RenderScript处理Bitmap的动态模糊方案,具有更好的效果和性能

2. 动态模糊

动态模糊提供了对View以及ViewGroup的实时背景模糊,并不是针对Bitmap的实现。组件将会对View所在区域进行模糊。

添加依赖

implementation 'com.hoko:blur-drawable:0.0.1'

为View添加背景模糊,只需要将BlurDrawable设置为View背景即可。

final BlurDrawable blurDrawable = new BlurDrawable();
View view = findViewById(R.id.test_view);
view.setBackgroundDrawable(blurDrawable);

模糊参数的调整,可以这样操作:

blurDrawable.mode(mode)
blurDrawable.radius(radius)
blurDrawable.sampleFactor(factor)

为模糊效果添加混合蒙版(OverlayColor)

blurDrawable.mixColor(color)
blurDrawable.mixPercent(percent) //0 ~ 1.0

禁用/开启背景模糊

blurDrawable.disableBlur();
blurDrawable.enableBlur();

组件已包含实现背景模糊的三种常用ViewGroup,包括BlurFrameLayout、BlurLinearLayout和BlurRelativeLayout。

使用示例:

// 模糊动画
ValueAnimator animator = ValueAnimator.ofInt(0, 20);
animator.setDuration(2000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        mFrameLayout.getBlurDrawable().setBlurRadius((Integer) animation.getAnimatedValue());
    }
});

gif图较大,稍等片刻

动态模糊

About

HokoBlurDrawable is an Android component which provides dynamic blur effect.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 78.6%
  • C++ 20.7%
  • CMake 0.7%