2012-05-30 2 views
1

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

+0

Возможно, [это] (http://www.tutorialforandroid.com/2009/01/changing-screen-brightness.html) учебник поможет вам. – Praveenkumar

+1

Возможный дубликат: http://stackoverflow.com/questions/7646865/changing-screen-brightness-programmatically-as-with-the-power-widget –

+1

еще один дубликат http://stackoverflow.com/questions/1791340/adding -screen-brightness-controls-to-android-application – Tschegewara

ответ

0

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

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

<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> 

и вуаля, на экране отображается серым цветом, когда слушатель вашей кнопки называется!

+0

Это искусственное затемнение, а не правильное решение. – Saket

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

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

Просто добавьте этот код к кнопке, которую вы хотите.

+0

Это не работает :( –

+0

@SherazKhilji call dialog.setContentView перед установкой dimAmount – jjyao

+0

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

Смежные вопросы