A Jetpack Compose library with blur, pixelate, and other effects to keep your designer happy. Inspired by iOS UIVisualEffectView.

Last update: May 9, 2022

BlurKit Header

Work in progress!

This project is completely experimental right now, it's far from production usable, and it still has a lot of bugs to be fixed.

Showcase.mp4

Disclaimer

Originally born as a concept project just to validate the implementation of real-time blur effect in Jetpack Compose, as you can see in the video, it was not ready to be put into a production environment as a library.

There are still a few things that need to be addressed to accomplish this feat, and once they are done, the project will be able to give birth to a lot of interesting effects, like pixelation.

Improvements

  • Fix flickering. The problem probably occurs in large part because recomposition happens all the time and it takes a bit of finesse to get rid of it, maybe something like Flow.debounce or Flow.distinctUntilChanged?
  • Use with accompanist's Pager. The problem is here in Slack.
  • Draw the contents from the SurfaceView and TextureView. This should be solved by traversing the ViewGroup tree to draw each view (refers ), but not sure if this will affect performance.
  • A way to be able to observe changes of some composable content. The current view.isDirty is not available for Modifier.graphicsLayers and requires more practice here.
  • Support RenderEffect and more.

In addition, for the reasons and performance issues regarding the birth of this library see this thread, @romainguy explains it very well 🙂 .

Contribution

Any PRs are always welcome, and I hope more people will come and work with me to complete and improve this project, which was the original purpose of pushing this project to Github, since I'm not a graphics master 😉 .

GitHub

https://github.com/chachako/visual-effects
You might also like...

Simple and powerful library to emulate iOS's "3D Touch" preview functionality on Android.

Simple and powerful library to emulate iOS's

Android 3D Touch - PeekView iOS uses 3D Touch as a way to "peek" into full content, such as emails, pictures, web searches, etc. While they have dedic

Apr 21, 2022

ios UISegmentedControl for android

ios UISegmentedControl for android

android-segmented-control Android-Segmented is a custom view for Android which is based on RadioGroup and RadioButton widget. This implementation is i

May 5, 2022

ios UISegmentedControl for android

ios UISegmentedControl for android

android-segmented-control Android-Segmented is a custom view for Android which is based on RadioGroup and RadioButton widget. This implementation is i

May 5, 2022

iOS UIActionSheet for Android

iOS UIActionSheet for Android

ActionSheet This is like iOS UIActionSheet component, has iOS6 and iOS7 style, support custom style, background, button image, text color and spacing

Apr 15, 2022

A Popover Controller for Android Tablets. It's an easy solution to simulate an iOS UIPopoverController

A Popover Controller for Android Tablets. It's an easy solution to simulate an iOS UIPopoverController

PopoverView A Popover Controller for Android Tablets. It's an easy solution to simulate an iOS UIPopoverController Base example 9patch image comes fro

Nov 29, 2021

Multiplatform UI DSL with screen management in common code for mobile (android & ios) Kotlin Multiplatform development

Multiplatform UI DSL with screen management in common code for mobile (android & ios) Kotlin Multiplatform development

Mobile Kotlin widgets This is a Kotlin MultiPlatform library that provides declarative UI and application screens management in common code. You can i

May 15, 2022

Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your

May 2, 2022

Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.

Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.

FancyToast-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ... ma

May 19, 2022

Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.

Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.

FancyAlertDialog-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ..

Apr 18, 2022
Related tags
Library for creating blur effects under Android UI elements
Library for creating blur effects under Android UI elements

BlurTutorial Meet BlurTutorial, an Android-based library made by Cleveroad Hurry to check our newest library that helps to blur the background in Andr

Apr 5, 2022
Dali is an image blur library for Android. It contains several modules for static blurring, live blurring and animations.
Dali is an image blur library for Android. It contains several modules for static blurring, live blurring and animations.

Dali Dali is an image blur library for Android. It is easy to use, fast and extensible. Dali contains several modules for either static blurring, live

May 15, 2022
JetCompose - Blur Effect in Android 12 with motion layout carousel
JetCompose - Blur Effect in Android 12 with motion layout carousel

JetCompose Blur Effect in Android 12 with motion layout carousel

Apr 15, 2022
Parallax everywhere is a library with alternative android widgets with parallax effects.

Parallax Everywhere# Parallax everywhere (PEW) is a library with alternative android views using parallax effects. Demo You can try the demo app on go

May 18, 2022
Draggable views with rotation and skew/scale effects
Draggable views with rotation and skew/scale effects

DraggableView Draggable views with rotation and skew/scale effects. Usage Implement DragController.IDragViewGroup Create instance of DragController Ov

Mar 16, 2022
A cool Open Source CoverFlow view for Android with several fancy effects.
A cool Open Source CoverFlow view for Android with several fancy effects.

FancyCoverFlow THIS PROJECT IS NO LONGER MAINTAINED! What is FancyCoverFlow? FancyCoverFlow is a flexible Android widget providing out of the box view

Apr 29, 2022
effects for android notifications
effects for android notifications

#NiftyNotification effects for android notifications.base on (Crouton) ScreenShot Usage NiftyNotificationView.build(this,msg, effect,R.id.mLyout)

May 10, 2022
Sliding cards with pretty gallery effects.
Sliding cards with pretty gallery effects.

SlidingCard Sliding cards with pretty gallery effects. Download Include the following dependency in your build.gradle file. Gradle: repositories {

Apr 27, 2022
Inspired by Heinrich Reimer Material Intro and developed with love from scratch
Inspired by Heinrich Reimer Material Intro and developed with love from scratch

Android Material Intro Screen Material intro screen is inspired by Material Intro and developed with love from scratch. I decided to rewrite completel

May 6, 2022
An Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers.
An Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers.

ShortcutBadger: The ShortcutBadger makes your Android App show the count of unread messages as a badge on your App shortcut! Supported launchers: Sony

May 19, 2022