BlurView is an Android library that provides dynamic blur effects for underlying views, similar to iOS-style blur.
The library solves the problem of rendering blurred backgrounds of underlying content in Android applications. It works by wrapping content into a BlurTarget and passing it to a BlurView, which then blurs that target's content and displays it as a background for its own children. The children themselves remain unblurred. The tool updates its blurred rendering when view hierarchy changes occur and responds to position and size changes, including during view and property animations. On API 31 and above, blurring is performed on the system Render Thread; on earlier APIs, it uses the main thread with optimized RenderScript Allocations for performance.
Developers should choose BlurView if they need efficient, hardware-accelerated blur effects without constant view invalidation. It suits projects requiring multiple blur views on screen simultaneously or blurring of dialogs and their backgrounds. The README explicitly compares it to BlurKit and RealtimeBlurView, noting that those libraries constantly invalidate themselves, whereas BlurView avoids this overhead. The tool supports TextureView blur on API 31 and above, though SurfaceView-based components like VideoView, MapFragment, and GLSurfaceView cannot be blurred. Rounded corners can be achieved using standard Android drawable and clipping approaches.
The project maintains separate code paths for API 31 and above versus earlier versions, requiring testing on both to ensure compatibility. The library is distributed through Jitpack using release tags as the source for stable artifacts. A major version update introduced significant changes and migration steps documented separately, reflecting active evolution of the codebase.