septembre
2011
Bonjour,
Grosse patate cette semaine.
Alors aujourd’hui, au moins une nouvelle astuce (j’en ai 4 sur le feu pour vous:o) :
Comment modifier la brillance de l’écran, ah ça c’est une bonne question.
Le code:
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, i);
// make it effective
LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 1.0f; // 0.0 - 1.0
getWindow().setAttributes(lp);
Les choses à savoir:
- Il faut demander à l’utilisateur de désactiver la définition automatique de la brillance de l’écran dans le téléphone. En effet, quand la brillance est automatiquement mise en place par le téléphone, la valeur de cette brillance n’est pas prise en compte par le système.
- Va savoir pourquoi, ce n’est que quand on quitte l’activité que la valeur est interprété par le système. Donc si vous souhaitez la mettre en place dans votre application, le mieux est de créer une autre activité qui change la brillance et revient à votre activité principale.
- Enfin, remettez à l’utilisateur la brillance de son écran initial quand vous quittez votre application, sinon il risque de vous détester
Enfin, une autre méthode qui marche dans le cas où vous maitrisez votre affichage (bref vous avez redéfini la méthode onDraw), il vous suffit de jouer sur l’alpha de votre couleur de votre paint. Alpha=0, c’est transparent, Alpha = 255 c’est opaque. Ce qui vous permet d’afficher un dégradé de couleur entre le noir et le blanc en trois secondes:
code:
public void onDraw(Canvas canvas) {
// retrieve the width
width = this.getWidth();
this.canvas = canvas;
// if the gradientAlpha is not instanciate, do it:
if (gradientAlpha == null) {
// instanciate the gradientColor
gradientAlpha = new ArrayList(255);
int value;
// instanciate all the values of the list depending on the width of the area to draw
for(int i=0;i<width;i++) {
//for x=widht, value=0 and for x=0, value=255
//So value=255-255*x/width
value=255-((255*i)/width);
gradientAlpha.add(i, value);
}
}
// the drawing the rainbow:
drawHorizontalAlpha();
}
/**
* Fill the view with a vertical rainbow
*/
private void drawHorizontalAlpha() {
// Just browse the absissa and for each draw a vertical line using the gradient color
// associated to that absissa
for (int i = 0; i < width; i++) {
paint.setColor(Color.argb(gradientAlpha.get(i),255,255,255));
canvas.drawRect(i, 0, i+1, height, paint);
}
}
Et voilà trop facile.
Bon vous pouvez aussi faire un dégradé entre deux couleurs avec la même méthode, d’abord dessiner la première couleur en faisant jouer son alpha, puis dessus dessiner la deuxième couleur en faisant jouer son alpha dans l’autre sens. (me demande si c’est bien nécessaire de jouer avec le alpha de la première couleur, à tester).
Alors, merci qui?
Merci, Android2ee, les Ebooks de programmation Android :o)
Mathias Séguy
mathias.seguy.it@gmail.com
Auteur Android2EE
Ebooks pour apprendre la programmation sous Android.
3 Commentaires + Ajouter un commentaire
Référence Android
Mots-clés
Archives
- mars 2015
- février 2015
- janvier 2015
- mai 2014
- mars 2014
- janvier 2014
- décembre 2013
- novembre 2013
- septembre 2013
- mai 2013
- mars 2013
- février 2013
- janvier 2013
- décembre 2012
- novembre 2012
- octobre 2012
- septembre 2012
- août 2012
- mai 2012
- avril 2012
- mars 2012
- janvier 2012
- décembre 2011
- novembre 2011
- septembre 2011
[…] Gestion de la brillance de l’écran et dégradé de couleur. par MathiasSeguy (16/09/2011 11:28) Bonjour, Grosse patate cette semaine. Alors aujourd’hui, au moins une nouvelle astuce (j’en ai 4 sur le feu pour vous:o) : Comment modifier la brillance de l’écran, ah ça c’est une bonne question. Le code: // change the brightness using i where 0<=i<255 android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, i); // make it effective LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 1.0f; // 0.0 – 1.0 getWindow().setAttributes(lp); Les choses à […] […]
;o) ah oui, c’est donc ça. Ca me parraissait bizarre ce brillance. Mais bon, j’ai pris brightness et j’ai traduit, caramba encore raté.
Pour un écran de téléphone, tablette, télévision, … on parle de luminosité
Sinon bon article