Как затемнить экран по нажатию кнопки в Android?

Как затемнить / затемнить текущий экран при нажатии кнопки. Помогите мне, пожалуйста.

2 ответа

Решение

Вот одно из решений, хотя оно может быть и не лучшим:

создать styles.xml под res/values. Добавьте следующий код:

<style name="Theme.Translucent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@color/cache_color</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">true</item>
 </style>

Обратите внимание, что @color/cache_color является <color name="cache_color">#00000000</color>, Теперь нажатие на вашу пользовательскую кнопку должно отправить намерение деятельности (например, FooActivity). Так заявите это в своем манифесте:

<activity android:name="com.FooActivity" android:theme="@style/Theme.Translucent"></activity>

и вуаля, экран тускнеет при вызове слушателя вашей кнопки!

WindowManager.LayoutParams lparams = getWindow().getAttributes();  
lparams.dimAmount=1.0f; 
dialog.getWindow().setAttributes(lparams);  

Значение dim 0 означает отсутствие затемнения, а значение dim 1.0f означает полное затемнение. Любое значение между ними представляет собой соответствующий процент тусклости.

Просто добавьте этот код к нужной кнопке.

Другие вопросы по тегам