Je souhaite modifier la luminosité de l'écran par programme dans Android . Pour l'instant, j'utilise ce code:
WindowManager.LayoutParams lp = getWindow().getAttributes();
float brightness=1.0f;
lp.screenBrightness = brightness;
getWindow().setAttributes(lp);
Mais cet exemple de code fonctionne sur cupcake, pas sur les dernières versions. J'utilise la dernière version du SDK .. Quelle est la solution préférée pour les nouvelles versions Android?
Que diriez-vous d'utiliser l'interface IHardwareService pour cela? Un exemple peut être trouvé dans ce tutorial .
Mise à jour: le lien vers le didacticiel fonctionne toujours, mais le code actuel est également disponible dans la réponse suivante.
Ceci est possible en utilisant:
WindowManager.LayoutParams layout = getWindow().getAttributes();
layout.screenBrightness = 1F;
getWindow().setAttributes(layout);
Voir aussi: http://developer.Android.com/reference/Android/view/WindowManager.LayoutParams.html#screenBrightness
Vous devez ajouter des paramètres à Window
avant sa création, sinon il lancera Java.lang.IllegalArgumentException: Window type can not be changed after the window is added.
Voir l'exemple avec un Android.app.Dialog.Dialog
.
final Dialog dialog = new Dialog(this) {
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
WindowManager.LayoutParams layout = getWindow()
.getAttributes();
layout.screenBrightness = 1F;
getWindow().setAttributes(layout);
}
};
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.show();
Veuillez noter que la valeur de la luminosité est comprise entre 0.0F et 1.0F.
@kamal_tech_view: vous devez convertir la valeur layout.screenBrightness = valeur; flotter
Réponse trop tardive mais je veux m'améliorer.
J'ai essayé avec le code de Tor-morten mais c'est pour l'écran en particulier, je voulais changer n'importe où, j'ai rendu service pour ça.
Modifier la luminosité en fonction de la lumière ambiante dans Android
J'espère que cela sera utile aux autres.
final Dialog dialog = new Dialog(act);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog
.setContentView(R.layout.menubase_brightness_control);
dialog.setCanceledOnTouchOutside(true);
SeekBar global_brightness_control = (SeekBar) dialog
.findViewById(R.id.global_brightness_control);
global_brightness_control.setMax(255);
global_brightness_control.setProgress(Settings.System.getInt(
con.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS));
global_brightness_control
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
Settings.System
.putInt(con.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, progress);
}
});
dialog.show();