https://github.com/mmin18/RealtimeBlurView
  
  
    A realtime blurring overlay for Android (like iOS UIVisualEffectView) 
    https://github.com/mmin18/RealtimeBlurView
  
android realtimeblurview
        Last synced: 7 months ago 
        JSON representation
    
A realtime blurring overlay for Android (like iOS UIVisualEffectView)
- Host: GitHub
 - URL: https://github.com/mmin18/RealtimeBlurView
 - Owner: mmin18
 - License: other
 - Created: 2016-09-21T15:59:51.000Z (about 9 years ago)
 - Default Branch: master
 - Last Pushed: 2023-12-05T04:55:08.000Z (almost 2 years ago)
 - Last Synced: 2024-11-05T03:51:28.643Z (12 months ago)
 - Topics: android, realtimeblurview
 - Language: Java
 - Size: 10.3 MB
 - Stars: 3,233
 - Watchers: 61
 - Forks: 354
 - Open Issues: 35
 - 
            Metadata Files:
            
- Readme: README.md
 - License: LICENSE
 
 
Awesome Lists containing this project
- awesome-github-android-ui - RealtimeBlurView - 仿UIVisualEffectView实时模糊覆盖 (模糊效果)
 
README
          # RealtimeBlurView
It's just a realtime blurring overlay like iOS UIVisualEffectView.

Just put the view in the layout xml, no Java code is required.
	// Views to be blurred
	
	
	
	
	// Views above blurring overlay
	
Try the sample apk: [blurring.apk](imgs/blurring.apk)
# Adding to project
Add dependencies in your `build.gradle`:
```groovy
	dependencies {
	    implementation 'com.github.mmin18:realtimeblurview:1.2.1'
	}
```
## Support API level < 19
The following step is only required if your minSdkVersion < 19, or you use renderscript support mode.
Both AndroidX and Android Support Library is supported.
```groovy
	android {
		buildToolsVersion '24.0.2'                 // Use 23.0.3 or higher
		defaultConfig {
			minSdkVersion 15
			renderscriptTargetApi 19
			renderscriptSupportModeEnabled true    // Enable RS support
		}
	}
```
Add proguard rules if necessary:
```
-keep class android.support.v8.renderscript.** { *; }
-keep class androidx.renderscript.** { *; }
```
# Limitations
- Adding multiple RealtimeBlurView (even not visible) may hurt drawing performance, like use it in ListView or RecyclerView.
- It will not work with SurfaceView / TextureView like VideoView, GoogleMapView
# Performance
RealtimeBlurView use RenderScript to blur the bitmap, just like [500px-android-blur](https://github.com/500px/500px-android-blur).
Everytime your window draw, it will render a blurred bitmap, so there is a performance cost. Set downsampleFactor>=4 will significantly reduce the render cost. However, if you just want to blur a static view, 500px-android-blur is good enough.
I've run the sample on some old phones like Samsung Galaxy S2, Samsung Galaxy S3, it runs at full FPS. Here is a performance chart while scrolling the list on Nexus 5.

# Changelog
### 1.2.1 (2019-05-24)
Improve BlurImpl detection.
### 1.2 (2019-05-22)
Support both AndroidX and Android Support Library.
### 1.1.2 (2018-05-28)
Bug fix (Draw overlay color in rect).
### 1.1.1 (2018-05-22)
Fix downsample factor issue when blur radius is very big.
### 1.1.0 (2017-01-02)
Some improvements (OOM, resize, window background)
### 1.0.8 (2016-11-29)
Fix view not refreshed issue on PopupWindow
### 1.0.6 (2016-11-7)
Fix crash when view is very small (draw at least 1px)
### 1.0.5 (2016-11-5)
Support Popup Window (Use it as dialog background)
Ignore UnsatisfiedLinkError if APK is not debuggable.
### 1.0.4 (2016-9-28)
Support custom shape (by override drawBlurredBitmap()), support view in ContextThemeWrapper.