Как копировать iOS 7 Blur View в Android

Мне нравится стиль iOS 7, используемый для Notification и Музыка, как показано ниже.

enter image description here

Итак, я пытаюсь реализовать эту вещь в Android. После выполнения поиска я достиг, как это сделать. То, что я пробовал, следующее.

1) Сначала я беру корневую ссылку для представления и беру ее с помощью функции getDrawingCache() вида.

linearLayout.buildDrawingCache();
SoftReference<Bitmap> bitmap = new SoftReference<Bitmap>(
            Bitmap.createBitmap(linearLayout.getDrawingCache()));
linearLayout.destroyDrawingCache();

2) Я беру позицию относительно ее родителя и вырезаю изображение согласно требованию.

SoftReference<Bitmap> temp = new SoftReference<Bitmap>(
            Bitmap.createBitmap(bitmap.get(), 0,
                    (parentHeight - childHeight), childWidth, childHeight));

3) Я делаю размытие растрового изображения каким-то алгоритмом. (Я использую Быстрое размытие битмарта для Android SDK Эффект fastBlur)

4) установите его в виде наложения.

imageView1.setImageBitmap(Utils.fastblur(temp.get(), 8));

Но моя проблема заключается в том, что требуется время, чтобы сделать снимок, а затем получить эффект размытия и резки изображения, а затем я получил конечный результат. В то время как у iOS очень быстрый процесс размывания, например, когда выдвижной ящик идет снизу, он сразу же размывает экран, который находится за ним.

Есть ли другой способ достичь этого? Поскольку я использую мой сценарий, я не могу выполнять каждую вторую привязку экрана и делать все процессы с 1 по 4 каждую секунду при каждом перемещении ящика.

Ответ 1

http://nicolaspomepuy.fr/blur-effect-for-android-design/

Я не знаю, видели ли вы эту ссылку, но проверьте ее. В нем рассказывается о том, как эффект размытия может быть достигнут примерно в 200 мс.

PS: ознакомьтесь с комментариями!

Ответ 2

Хорошо, поэтому, если я правильно понял вашу проблему, у вас есть механизм ящика, который вам нужно обновить размытое изображение на каждом пикселе, который выдвинул ящик?

Тогда решением вашей проблемы будет однократное размытие экрана и использование этого изображения вместе с каким-то фантастическим алгоритмом, чтобы показать/скрыть и поместить это изображение, чтобы казалось, что ящик мгновенно размывается, но на самом деле то, что происходит что изображение уже сгенерировано. Вы просто показываете более или менее изображение для создания эффекта.

Не знаю, имею ли я смысл или я даже понимаю ваш вопрос.