Api De Bajo Nivel

  • Uploaded by: Sergio Pino
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Api De Bajo Nivel as PDF for free.

More details

  • Words: 635
  • Pages: 18
J2ME

 Clase

para representar objetos gráficos.  Permite manejar eventos de bajo nivel y dibujar cualquier tipo de elemento grafico en pantalla.  Capaz de mostrar información gráfica a nivel de pixel (de ahí se deriva el “bajo nivel”)  Básicamente se pueden realizar 3 operaciones  Dibujar primitivas gráficas.



Commands (Alto nivel)

Key Codes (Bajo nivel)  0-9, *, #. (gestión de pulsación)  Tecla↔ Numero simbólico. 



Métodos Abstractos(manejo de teclas)

 Soporte

de dispositivo puntero:

 boolean hasPointerEvents(): Posee?  boolean hasPointerMotionEvents(): Detecta?

 Si

posee detección de eventos (métodos abstractos):

 Una

pantalla Canvas no posee la capacidad por sí misma de restaurar su estado en caso de interrumpirse la ejecución de la aplicación para, por ejemplo, avisar de una llamada entrante.

 Respuesta:  hideNotify(): antes de ocurrir el evento

(incluir código necesario para salvar la información actual)

 Funciones

del API de bajo nivel:

 Controlar los eventos de bajo nivel.  Controlar qué aparece en pantalla.

 Gestión  Método

de dibujo en pantalla abstracto

paint()

de

la

clase

canvas.  Para repintar, se llama al metodo repaint().  El MID no limpia la pantalla antes de llamar a paint(): Es acción del paint() pintar cada pixel.

 Pasada

como parámetro de paint(Graphics g).  Permite dibujar en una pantalla Canvas.  Métodos de uso u obtención:  Dentro del método paint() de la clase

Canvas.  A partir de un objeto Image:

▪ Image img = Image.createImage(ancho, alto); ▪ Graphics g = img.getGraphics();



 Canvas

posee dos métodos:

 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:

 Método translate(int x, int y) de la clase

Graphics.

 Existen

dos métodos ú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)  Método 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 función de 3 atributos: aspecto, estilo y tamaño Fuentes disponibles

Atributos FACE_SYSTEM

Aspecto

FACE_MONOSPACE FACE_PROPORTIONAL STYLE_PLAIN

Estilo

STYLE_BOLD STYLE_ITALIC STYLE_UNDERLINED SIZE_SMALL

Tamaño

SIZE_MEDIUM SIZE_LARGE

Sintaxis:

Font.getFont(int aspecto, int estilo, int tamaño)

Graphics g; Font fuente=Font.getFont(FACE_SYSTEM, STYLE_PLAIN, SIZE_MEDIUM); g.setFont(fuente); g.drawString(“Hola mundo”, 23 , 45, BASELINE|HCENTER)



Líneas  g.drawLine(x1,y1,x2,y2); //Línea de (x1,y1) a

(x2,y2)



Rectángulos  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 gráficas en memoria principal y volcar a pantalla.  boolean isDoubleBuffered() ▪ true: Dispositivo utiliza la técnica. ▪ false: Hay que implementar el double buffer.

1)

Crear una imagen mutable del tamaño de la pantalla Image pantalla2; if(!isBuffered()){ pantalla2=Image.createImage(getWidth(), getHeight()); …}

2)

Implementar paint(Graphics g) adecuadamente protected void paint(Graphics g){ Graphics pantalla1 = g; g= pantalla.getGraphics(); //actualizar elementos gráficos sobre g … //volcar a la pantalla para visualizar …

 Clipping  Clave: Actualizar solo la parte que se haya

modificado.  Se puede definir una región que limíte 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 métodos:

Related Documents


More Documents from ""

Rms
April 2020 13
April 2020 9
Tema 5 J2me
December 2019 12
Api De Bajo Nivel
April 2020 8
April 2020 11
Api Midp De Alto Nivel
April 2020 9