Theme.Translucent не работает на ICS

Я использую: android:theme="@android:style/Theme.Translucent.NoTitleBar"

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

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

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


person sgarman    schedule 06.01.2012    source источник
comment
Не похоже, что это решит вашу проблему, но если вы пропустили это: Холо везде   -  person tidbeck    schedule 10.01.2012
comment
Не могли бы вы указать, на каких устройствах работает? Работает ли Theme.Translucent.NoTitleBar для недавно созданного минимального проекта Android? Имеет ли значение значение android:hardwareAccelerated true/false? Имеют ли значение различные комбинации атрибутов в теге ‹uses-sdk ... /› (т. е. разные режимы совместимости)?   -  person Martin Nordholts    schedule 11.01.2012
comment
Просто сделал новый проект с минимальным манифестом (автоматически созданным) и добавил тему. Работает на моих устройствах 2.3, но не на Galaxy Nexus. android:hardwareAccelerated, похоже, не влияет на это или использует-sdk.   -  person sgarman    schedule 11.01.2012


Ответы (2)


Использовать

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

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

<item name="android:windowBackground">@android:color/transparent</item>
person Zsolt Safrany    schedule 17.02.2012
comment
Я смог заставить это работать, используя обновленные темы ActionbarSherlock. - person sgarman; 05.01.2013

Похоже, они отказались от размытия, по крайней мере, с помощью FLAG_BLUR_BEHIND. :

публичный статический финал int FLAG_BLUR_BEHIND

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

person aromero    schedule 07.01.2012
comment
Хорошая находка, но даже если я уберу это, я все равно не получу прозрачность темы. Так что, хотя это хороший совет, на самом деле он не решает мою проблему :( - person sgarman; 07.01.2012