2013-08-26 4 views
6

Я работаю над новым Android-приложением, разработанным в действительно плоском стиле. Я хочу иметь DialogAlert, который появляется на размытом фоне. Эффект похож на центр управления на этом фото (не пишут о неразглашении, эта фотография доступна на веб-сайте компании Apple):iOS 7 blur in Android

iOS7

Возможно ли это? Если это так, то самый важный вопрос: как?

M.

+3

Вероятно, вы получите плохие отзывы в Play Маркете, если ваше приложение выглядит идентичным (или, по крайней мере, очень похожим) с плоским дизайном iOS 7. Разумеется, все в порядке, чтобы приправить ваше приложение своим личным стилем ... но убедитесь, что вы держите в руках рекомендации по дизайну Android и не используете стиль iOS 7 в качестве шаблона для своего приложения. :) –

+0

Хороший вопрос, мои дизайнеры очень много задают этот вопрос – CQM

ответ

0

Да, это возможно. Вместо того, чтобы создать диалог, создание и деятельность и в манифесте добавить android:theme="@android:style/Theme.Dialog" к вашей деятельности, как показано ниже:

<activity 
    android:name=".Activity" 
    android:label="@string/title_activity" 
    android:theme="@android:style/Theme.Dialog"> 
    <intent-filter> 
    <action android:name="example.package" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
+0

Это будет только затемнять фон, а не размывать его. –

0

Это может быть сделано, но нет быстрый и простой способ сделать это. Посмотрите наш BlurMask filter в документации разработчика Android или Android, how to blur/glass/frost current activity для некоторых предлагаемых шагов.

+0

Почему downvote? –

0

Создайте размытое растровое изображение в Photoshop и установите его как фоновый рисунок Activity/Dialog.

+1

Я не думаю, что это то, чего искал искатель, который будет выглядеть примерно в 100% случаев. Я предполагаю, что он хочет что-то более динамичное, что влияет на диалог, сделанный из матового стекла. – satur9nine

+0

@ satur9nine OP никогда не упоминал ничего о том, что ему нужно быть динамичным. Но если это то, что он имел в виду, то да, размытый эффект может возникнуть во время выполнения. –

6

Да, это возможно, вам нужно использовать что-то, называемое renderscript. , так что вам нужно растровое изображение из представления, это можно сделать, используя следующий код.

View v // target view to be blurred 
v.setDrawingCacheEnabled(true); 
Bitmap screenshot = Bitmap.createBitmap(v.getDrawingCache()); 

Теперь используйте Renderscript, чтобы получить помутнение точечный рисунок, показанный здесь http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android/ и обратить его на ваш взгляд.

+0

Я вижу, что это использует renderscript, и он будет использовать gpu, но так ли это быстро, поскольку он имеет отношение ко всему времени? – CQM

+0

Обратите внимание, что вы можете только размыть контент, доступ к которому вы можете получить из своей собственной деятельности. –

+0

RenderScript в ссылке работает отлично, однако вы должны заметить, что он написан на C#, поскольку это блог Xamarin. К счастью, это работа ребенка, чтобы преобразовать его в Java. – halileohalilei