Как затемнить экран по нажатию кнопки в 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 означает полное затемнение. Любое значение между ними представляет собой соответствующий процент тусклости.
Просто добавьте этот код к нужной кнопке.