Con esta clase podrán crear degradados en Canvas, la clase Degradado dispone de un método estático llamado pintar. que recibe como parámetros:
* Graphics g : El objeto que se necesita para dibujar
* int Color 1 : El color inicial del degradado
* int Color 2 : El color final del degradado
* int x : Punto desde donde comenzara el degradado
* int y : Punto desde donde comenzara el degradado
* int ancho : El total del ancho del degradado
* int alto : El Alto del degradado
* int orientación : La orientación del degradado, puede ser Degradado.HORIZONTAL o Degradado.VERTICAL
les dejo unos ejemplos:
// Ejemplo 1 - Toda la pantalla de Blanco a Negro Degradado.pintar(g, 0xFFFFFF, 0x000000, 0, 0, getWidth(), getHeight(), Degradado.HORIZONTAL); // Ejemplo 2 - Toda la pantalla de Rojo a Negro Degradado.pintar(g, 0xFF0000, 0x000000, 0, 0, getWidth(), getHeight(), Degradado.VERTICAL); // Ejemplo 3 - Un cuadrado de 100x100 de Verde a Azul Degradado.pintar(g, 0x00FF00, 0x0000FF, 10, 10, 100, 100, Degradado.HORIZONTAL); // Ejemplo 4 - Un cuadrado de 100x100 dibujado en la mitad de la pantalla Degradado.pintar(g, 0x0000FF, 0xFFFFFF, getWidth()/2-50, getHeight()/2-50, 100, 100, Degradado.VERTICAL);
Esta clase es muy útil si quieren darle un mejor aspecto a su aplicación o juego en Java ME. Esta clase ha sido obtenida de Forum Nokia. Yo solo la he traducido.
Código:
import javax.microedition.lcdui.Graphics;
public class Degradado {
public static final int HORIZONTAL = 0;
public static final int VERTICAL = 1;
public static void pintar(Graphics g, int color1, int color2, int x, int y, int ancho, int alto, int orientacion){
int max;
if(orientacion == HORIZONTAL){
max = ancho;
}else{
max = alto;
}
for (int i = 0; i < max; i++) {
int color = midColor(color1, color2, max * (max - 1 - i) / (max - 1), max);
g.setColor(color);
if(orientacion == HORIZONTAL){
g.drawLine(x + i, y, x + i, y + alto - 1);
}else{
g.drawLine(x, y + i, x + ancho - 1, y + i);
}
}
}
protected static int midColor(int color1, int color2, int prop, int max) {
int red =
(((color1 >> 16) & 0xff) * prop
+ ((color2 >> 16) & 0xff) * (max - prop)) / max;
int green =
(((color1 >> 8) & 0xff) * prop
+ ((color2 >> 8) & 0xff) * (max - prop)) / max;
int blue =
(((color1 >> 0) & 0xff) * prop
+ ((color2 >> 0) & 0xff) * (max - prop)) / max;
int color = red << 16 | green << 8 | blue;
return color;
}
}
Saludos...
Maty!




0 comentarios:
Publicar un comentario en la entrada