2012-01-06 3 views
6

Я использую: android:theme="@android:style/Theme.Translucent.NoTitleBar"Theme.Translucent терпит неудачу на ICS

в сочетании с: getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

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

Это отлично работает на 2.3 и ниже, но это сплошной цвет (читай непрозрачный) на устройствах, работающих под управлением ICS/3.0 и выше. Я знаю, что они представили голографическую тему, и, похоже, не существует конкретной темы Theme.Holo.Translucent. Любые идеи о том, как получить полупрозрачный фон на ICS и старше, я не против использования отдельных тем, определенных в значениях-v11.

+0

Не похоже, что это решит проблему, но в случае, если вы пропустили это: [Холо везде] (http://android-developers.blogspot.com/2012/01/holo-everywhere.html) – tidbeck

+0

Не могли бы вы указать, на каких устройствах работает? Does Theme.Translucent.NoTitleBar работает для вас во вновь созданном минимальном проекте Android? Does android: hardwareAccelerated true/false делает разницу? Различаются ли различные комбинации атрибутов в теге (т. Е. Разные режимы совместимости)? –

+1

Просто сделал новый проект с минимальным манифестом (сгенерирован автоматически) и добавил тему. Работает на моих 2,3 устройствах, но не на Galaxy Nexus. android: hardwareAccelerated, похоже, не влияет на него или использует -sdk. – sgarman

ответ

3

Использование

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0)); 

или расширить Theme.Translucent.NoTitleBar и добавить

<item name="android:windowBackground">@android:color/transparent</item> 
+0

Мне удалось заставить это работать, используя обновленные темы ActionbarSherlock. – sgarman

1

Кажется, что они не рекомендуется размывания, по крайней мере, с FLAG_BLUR_BEHIND:

общественности статической окончательный ИНТ FLAG_BLUR_BEHIND

Эта константа является устаревшим. Размытие больше не поддерживается.

+0

Хорошая находка, но даже если я удалю, я до сих пор не получаю прозрачность от темы. Так что, пока это хороший совет, он фактически не решает мою проблему :( – sgarman