blurkit-android背景模糊(图片和背景均可)
介绍:
一个性能优秀的快速背景模糊库。
运行效果:
使用说明:
性能
因为一些列的位图检索和绘制方面的性能优化,BlurKit快于其它的模糊库。下面是对一张基本的高清图片做的300dp x 100dp模糊:
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 |
设置
把BlurKit添加到依赖中:
- compile 'com.wonderkiln:blurkit:1.0.0'
你还需要向module中添加RenderScript,在build.gradle的defaultConfig块中添加如下代码:
- renderscriptTargetApi 24
- renderscriptSupportModeEnabled true
BlurLayout
添加BlurLayout
- <com.wonderkiln.blurkit.BlurLayout
- android:id="@+id/blurLayout"
- android:layout_width="150dp"
- android:layout_height="150dp">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="BlurKit!"
- android:textColor="@android:color/white" />
- </com.wonderkiln.blurkit.BlurLayout>
这个布局的背景将持续为后面的内容增加模糊效果。如果你知道你的背景内容是静态的,可以把layout的fps设置为0。任何时候都可以调用BlurLayout的invalidate()重新模糊背景内容。
- <com.wonderkiln.blurkit.BlurLayout xmlns:blurkit="http://schemas.android.com/apk/res-auto"
- android:id="@+id/blurLayout"
- android:layout_width="150dp"
- android:layout_height="150dp"
- blurkit:fps="0" />
其它属性包括模糊半径和 downscale factor。可以用它们做一些实验。
- <com.wonderkiln.blurkit.BlurLayout xmlns:blurkit="http://schemas.android.com/apk/res-auto"
- android:id="@+id/blurLayout"
- android:layout_width="150dp"
- android:layout_height="150dp"
- blurkit:blurRadius="12"
- blurkit:downscaleFactor="0.12"
- blurkit:fps="60" />
其它
BlurKit还含有一些有用的模糊工具。但是在这之前(如果不是用BlurLayout),你需要初始化BlurKit。
- public class MyApplication extends Application {
- @Override
- public void onCreate() {
- BlurKit.init(this);
- }
- }
你可以直接模糊一个View或者一个Bitmap。
- // View
- BlurKit.blur(View src, int radius);
- // Bitmap
- BlurKit.blur(Bitmap src, int radius);
你还可以快速模糊一个View。
- BlurKit.fastBlur(View src, int radius, float downscaleFactor);