I would like to implement a Blur-based fading effect, or whatever it’s called, when the application starts. That is, the blur radius becomes zero in a couple of seconds.


When the application starts (Immediately after showing the splashscreen), a Blur layer is created (RealtimeBlurView library), a stream is created which, in the for loop, reduces the blur radius with a delay.

And it turns out that everything works fine on my phone (Xiaomi Mi5), but it already lags on weaker phones. Lies on Samsung Galaxy S4 (GT-I9515).

How can you achieve the same effect, but to work everywhere, and without lags?

Asked on December 17, 2019 in Programming.
Add Comment
1 Answer(s)

Blur is a very difficult effect. Gaussian blur has a complexity of r ^ 2 for each pixel. that is, the overall complexity of the O (width Answer.csv DB.csv DB.csv.bak NA_Import_Answers.csv fin height Answer.csv DB.csv DB.csv.bak NA_Import_Answers.csv fin r ^ 2) algorithm. If you set an impressive radius, then you may not be able to keep up with the frame, hence the brakes. Write down the dependence of the maximum blur radius on the phone. You can also try instead of parallel flow to change the radius using ValueAnimator

Well, the last option: find a solution using OpenGL or do it yourself. According to a cursory study of the library, it not only does not fit graphics, but also does not optimize blurring. Although it may not look there

Answered on December 17, 2019.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.