Upload
sergio-pino
View
528
Download
1
Embed Size (px)
Citation preview
J2ME
Clase
para representar objetos grficos. Permite manejar eventos de bajo nivel y dibujar cualquier tipo de elemento grafico en pantalla. Capaz de mostrar informacin grfica a nivel de pixel (de ah se deriva el bajo nivel) Bsicamente se pueden realizar 3 operaciones Dibujar primitivas grficas.
Commands (Alto nivel)
Key Codes (Bajo nivel) 0-9, *, #. (gestin de pulsacin) Tecla Numero simblico.
Mtodos Abstractos(manejo de teclas)
Soporte
de dispositivo puntero:
boolean hasPointerEvents(): Posee? boolean hasPointerMotionEvents(): Detecta?
Si
posee deteccin de eventos (mtodos abstractos):
Una
pantalla Canvas no posee la capacidad por s misma de restaurar su estado en caso de interrumpirse la ejecucin de la aplicacin para, por ejemplo, avisar de una llamada entrante.
Respuesta: hideNotify(): antes de ocurrir el evento
(incluir cdigo necesario para salvar la informacin actual)
Funciones
del API de bajo nivel:
Controlar los eventos de bajo nivel. Controlar qu aparece en pantalla.
Gestin Mtodo
de dibujo en pantallaabstracto paint() de la clase
canvas. Para repintar, se llama al metodo repaint(). El MID no limpia la pantalla antes de llamar a paint(): Es accin del paint() pintar cada pixel.
Pasada
como parmetro de paint(Graphics g). Permite dibujar en una pantalla Canvas. Mtodos de uso u obtencin: Dentro del mtodo paint() de la clase
Canvas. A partir de un objeto Image:
Image img = Image.createImage(ancho, alto); Graphics g = img.getGraphics();
Canvas
posee dos mtodos:
getWidth(): Obtiene ancho de la pantalla. getHeight(): Obtiene el alto de la pantalla.
Posicion
de puntos: (,)
Esquina superior izquierda: (0,0) Esquina inferior derecha (getWidth()-1,
getHeight()-1)
Cambio
de origen:
Mtodo translate(int x, int y) de la clase
Graphics.
Existen
dos mtodos tiles:
boolean Display.isColor(): true=color,
false=gris. int Display.numColors(): Numero de colores o grises Modelo
de color de 24 bits en RGB (Graphics) Mtodo setColor() int Graphics.setColor(int RGB) int Graphics.setColor(int rojo, int verde, int azul) ->Max 255 g.setColor(0,0,0); //Negro
Permite seleccionar tipo de letra en funcin de 3 atributos: aspecto, estilo y tamaoFuentes disponibles Aspecto Atributos FACE_SYSTEM FACE_MONOSPACE FACE_PROPORTIONAL STYLE_PLAIN Estilo STYLE_BOLD STYLE_ITALIC STYLE_UNDERLINED SIZE_SMALL Tamao SIZE_MEDIUM SIZE_LARGE
Sintaxis:
Font.getFont(int aspecto, int estilo, int tamao)
Graphics g; Font fuente=Font.getFont(FACE_SYSTEM, STYLE_PLAIN, SIZE_MEDIUM); g.setFont(fuente); g.drawString(Hola mundo, 23 , 45, BASELINE|HCENTER)
Lneas g.drawLine(x1,y1,x2,y2); //Lnea de (x1,y1) a
(x2,y2)
Rectngulos Planos g.drawRect(x,y,ancho,alto); //sin relleno g.fillRect(x,y,ancho,alto); //con relleno Redondeados g.drawRoundRect(x,y,ancho,alto,arcoAncho,arcoAlto); g.fillRoundRect(x,y,ancho,alto,arcoAncho,arcoAlto);
Arcos Simple: g.drawArc(x1,y1,x2,y2,1, 2 ); Relleno: g.fillArc(x1,y1,x2,y2,1, 2 );
Inmutables Image img = createImage(foto.png); Se crean a partir de un mapa de bits. No se puede variar su aspecto.
Mutables Image img =
Image.createImage(75,25); Se trabaja sobre una matriz de puntos. Podemos crear, modificar, etc. La imagen deseada
Mostrar imagen Graphics.drawImage(imagen,x,y,punto
Double
buffering:
Elimina el parpadeo al actualizar la
pantalla. Clave: actualizar las grficas en memoria principal y volcar a pantalla. boolean isDoubleBuffered() true: Dispositivo utiliza la tcnica. false: Hay que implementar el double buffer.
1)
Crear una imagen mutable del tamao de la pantallaImage pantalla2; if(!isBuffered()){ pantalla2=Image.createImage(getWidth(), getHeight()); }
2)
Implementar paint(Graphics g) adecuadamenteprotected void paint(Graphics g){ Graphics pantalla1 = g; g= pantalla.getGraphics(); //actualizar elementos grficos sobre g //volcar a la pantalla para visualizar
Clipping Clave: Actualizar solo la parte que se haya
modificado. Se puede definir una regin que limte qu parte de la pantalla se pintar al llamar a paint() void setClip(int x, int y, int ancho, int alto)
Solo puede existir una zona de clipping por
cada objeto Graphics. Otros mtodos: