# blurkit-android **Repository Path**: fzyme_admin/blurkit-android ## Basic Information - **Project Name**: blurkit-android - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-20 - **Last Updated**: 2021-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

BlurKit Header

Join Spectrum Buddy.Works

## What Is BlurKit? BlurKit is an extraordinarily easy to use and performant utility to render real time blur effects in Android.

BlurKit Demo

## Perfomance BlurKit is faster than other blurring libraries due to a number of bitmap retrieval and drawing optimizations. We've been logging benchmarks for the basic high-intensity tasks for a 300dp x 100dp BlurView: | Task | BlurKit time | Avg. time without BlurKit | | --------------------------| -------------------| ----------------------- | | Retrieve source bitmap | 1-2 ms | 8-25 ms | | Blur and draw to BlurView | 1-2 ms | 10-50ms | This results in an average work/frame time of 2-4ms, which will be a seamless experience for most users and apps. ## Setup Add __BlurKit__ to the dependencies block of the app level `build.gradle`: ```groovy dependencies { implementation 'io.alterac.blurkit:blurkit:1.1.0' } ``` ## Usage ### BlurLayout Add a `BlurLayout` to your XML layout just like any other view. ```xml ``` In the `Main_Activity.java` you need to override the `onStart()` and `onStop()` methods to include the `BlurLayout` functionality. ```java BlurLayout blurLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); blurLayout = findViewById(R.id.blurLayout); } @Override protected void onStart() { super.onStart(); blurLayout.startBlur(); } @Override protected void onStop() { blurLayout.pauseBlur(); super.onStop(); } ``` The layout background will continuously blur the content behind it. If you know your background content will be somewhat static, you can set the layout `fps` to `0`. At any time you can re-blur the background content by calling `invalidate()` on the `BlurLayout`. ```xml ``` Other attributes you can configure are the blur radius and the downscale factor. Getting these to work together well can take some experimentation. The downscale factor is a performance optimization; the bitmap for the background content will be downsized by this factor before being drawn and blurred. ```xml ``` ### Creating BlurKit Outside Of A Layout You can use the `BlurKit` class which has a few useful blurring utilities. Before using this class outside of a `BlurLayout`, you need to initialize `BlurKit`. ```java public class MyApplication extends Application { @Override public void onCreate() { BlurKit.init(this); } } ``` You can blur a `View`, or a `Bitmap` directly. ```java // View BlurKit.getInstance().blur(View src, int radius); // Bitmap BlurKit.getInstance().blur(Bitmap src, int radius); ``` You can also __fastBlur__ a `View`. This optimizes the view blurring process by allocating a downsized bitmap and using a `Matrix` with the bitmaps `Canvas` to prescale the drawing of the view to the bitmap. ```java BlurKit.getInstance().fastBlur(View src, int radius, float downscaleFactor); ``` ## Upcoming Features - [ ] `SurfaceView` support - [ ] Support for use outside of an `Activity` (dialogs, etc.) - [ ] Enhance retrieval of background content to only include views drawn behind the `BlurLayout`. ## License BlurKit is [MIT licensed](https://github.com/CameraKit/blurkit-android/blob/master/LICENSE). --- Blurkit is a sister project of [CameraKit](https://github.com/CameraKit/camerakit-android) and maintained by the CameraKit team.