2010-08-16 6 views
3

J'ai vu 2 méthodes jusqu'à présent dans ma recherche, les deux que j'ai des problèmes avec.Quelle est la bonne façon d'assombrir l'écran?

Méthode 1)

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 100); 

Méthode 2)

IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware")); 
hardware.setScreenBacklight(.5); 

Laquelle de ces méthodes est correcte? Ou y en a-t-il un autre que je devrais utiliser?

Merci

+0

quoi de mal avec ceux? –

Répondre

5

J'utilise le code ci-dessous pour faire la même chose

WindowManager.LayoutParams WMLP = getWindow().getAttributes(); 
WMLP.screenBrightness = 0.15F; 
getWindow().setAttributes(WMLP); 

L'avantage d'utiliser le code ci-dessus est que cela affecte la luminosité de l'écran que dans l'activité qu'il appelle. Ainsi, lorsque je passe à une autre activité (ou) que je quitte l'application, la luminosité par défaut du téléphone (définie par l'utilisateur) est restaurée.

Edit: j'oublié de mentionner que la gamme de l'attribut screenBrightness est de 0,0 à 1,0

-1

android.provider.Settings.System.putInt (getContentResolver(), Settings.System.DIM_SCREEN, temps); où le temps est en milli secondes. mais ce Settings.System.DIM_SCREEN est déprimé.

Questions connexes