mejorar - cambiando el brillo de la pantalla programáticamente en android
mejorar contraste android (6)
¿Qué le parece usar la interfaz IHardwareService para esto? Un ejemplo se puede encontrar en este tutorial .
Actualización: el enlace del tutorial todavía funciona, pero el código real también está disponible en la próxima respuesta.
Quiero cambiar el brillo de la pantalla programáticamente en Android. Por el momento utilizo este código:
WindowManager.LayoutParams lp = getWindow().getAttributes();
float brightness=1.0f;
lp.screenBrightness = brightness;
getWindow().setAttributes(lp);
Pero este código de muestra funciona en cupcake, no en las últimas versiones. Estoy usando la última versión de SDK. ¿Cuál es la solución preferida para las nuevas versiones de Android?
@kamal_tech_view: debe convertir el valor layout.screenBrightness = value; flotar
Debe agregar parámetros a la Window
antes de que se cree, de lo contrario arrojará java.lang.IllegalArgumentException: Window type can not be changed after the window is added.
Vea el ejemplo con 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();
Tenga en cuenta que el valor de brillo está entre 0.0F y 1.0F.
Demasiado tarde para responder pero quiero mejorar ...
Intenté con el código de Tor-Morten, pero es para una pantalla en particular, quería cambiar en cualquier lugar, hice un servicio para eso.
Cambiar el brillo de acuerdo con la luz del entorno en Android
Espero, será útil para otros.
Esto es posible haciendo mediante:
WindowManager.LayoutParams layout = getWindow().getAttributes();
layout.screenBrightness = 1F;
getWindow().setAttributes(layout);
Ver también: http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness
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();