HokoBlur
项目地址:HokoFly/HokoBlur
简介:an easy-to-use blur library for Android, support efficient dynamic blur jobs.
标签:
(中文版本请参看这里)
HokoBlur is an Android component which provides dynamic blur effect.
1. Introductions
-
Functions:
- Add blur to the image;
- Dynamic blur, real-time blurring of the background。
-
Features:
- Multiple schemes: RenderScript、OpenGL、Native and Java;
- Multiple algorithms: Box、Stack and Gaussian algorithms. Provide different blur effect;
- Multi-core and multi-threading, accelerate blurring,asynchronous interface;
- ?iOS-like dynamic backgroud blur: Compared to using RenderScript to process bitmaps, the component has better performance and effect.
2. Getting started
Download
implementation 'com.hoko:hoko-blur:1.3.3'
Static Blur
synchronous api
HokoBlur.with(context)
.scheme(Blur.SCHEME_NATIVE) //different implementation, RenderScript、OpenGL、Native(default) and Java
.mode(Blur.MODE_STACK) //blur algorithms,Gaussian、Stack(default) and Box
.radius(10) //blur radius,max=25,default=5
.sampleFactor(2.0f) //scale factor,if factor=2,the width and height of a bitmap will be scale to 1/2 sizes,default=5
.forceCopy(false) //If scale factor=1.0f,the origin bitmap will be modified. You could set forceCopy=true to avoid it. default=false
.needUpscale(true) //After blurring,the bitmap will be upscaled to origin sizes,default=true
.translateX(150)//add x axis offset when blurring
.translateY(150)//add y axis offset when blurring
.processor() //build a blur processor
.blur(bitmap); //blur a bitmap, synchronous method
Daily development does not need such complicated settings. If you want a blur effect, just use as follow:
Bitmap outBitmap = Blur.with(context).blur(bitmap);
When it comes to a large size bitmap, it is recommended to use an asynchronous method. The blur job could be cancelled.
Future f = HokoBlur.with(this)
.scheme(Blur.SCHEME_NATIVE)
.mode(Blur.MODE_STACK)
.radius(10)
.sampleFactor(2.0f)
.forceCopy(false)
.needUpscale(true)
.asyncBlur(bitmap, new AsyncBlurTask.CallBack() {
@Override
public void onBlurSuccess(Bitmap outBitmap) {
// do something...
}
@Override
public void onBlurFailed() {
}
});
f.cancel(false);
3. Sample
Animation