Ajustar imagen a la pantalla del móvil con J2ME

Estoy realizando una aplicación j2me en la que una de las cosas que tengo que hacer es coger una imagen ubicada en una base de datos y mostrarla en el móvil. La imagen quiero que se vea lo más grande posible en la pantalla ya que es un plano de un parking con muchas plazas y si se ve pequeño no se aprecia bien. La pregunta es si hay alguna manera de que la imagen se adapte a la pantalla de los distintos dispositivos móviles automáticamente independientemente del tamaño que tenga la pantalla. Si es posible, ¿cómo sería?

1 respuesta

Respuesta
1
Si es posible hacerlo, debes seguir los siguientes pasos:
1. Crea una clase que extienda la clase javax. Microedition. Lcdui. Canvas
Algo así:
/******************
SECCION DE CODIGO
******************/
import javax.microedition.lcdui.Canvas
public class DibujarImagen extends Canvas {
}
2. Dentro de esa clase implementa el método paint(Graphics g), así:
public void paint( javax.microedition.lcdui.Graphics g ){
}
3. Dentro del método paint dibujamos la imagen usando el método drawImage(...) y para obtener la anchura y la altura de la pantalla usamos los métodos getWidth() y getHeight() respectivamente, y que hacen parte de la clase Graphics, así:
public void paint( javax.microedition.lcdui.Graphics g ){
g.drawImage(new javax.microedition.lcdui.Image("ruta de la imagen"), getWidth() / 2, getHeight() / 2, Graphics.VCENTER | Graphics.HCENTER);
 }
La división entre 2 es para poder centrar la imagen, en caso de que sea menor que el tamaño de la pantalla del celular.
Bueno eso es todo lo que tienes que hacer, espero que te sirva, y por favor no olvides finalizar la pregunta.
Muchas gracias por contestar tan rapido!
Lo que me has comentado es similar a lo que tengo hecho, sin embargo yo lo que quiero es que la imagen se adapte al tamaño completo de la pantalla de cada celular. De esta manera no me tendría que preocupar de que la imagen sea más grande que la pantalla del celular (y por lo tanto no se viera el plano entero) o que la imagen sea más pequeña que la pantalla del celular (y por lo tanto sobrase pantalla).
Espero haberme explicado mejor ahora. ¿Sería posible conseguir esto?
Muchas gracias de nuevo!
Ok, entiendo perfectamente tu punto... encontré este método para redimensionar la imagen que quieres dibujar al tamaño de la pantalla en el método paint:
/**
* This methog resizes an image by resampling its pixels
* @param src The image to be resized
* @return The resized image
*/
private Image resizeImage(Image src) {
Canvas dummyCanvas = new Canvas()
// obtenemos el tamaño de la pantalla:
int screenWidth = dummyCanvas.getWidth ();
int screenHeight = dummyCanvas.getHeight();
int srcWidth = src.getWidth();
int srcHeight = src.getHeight();
Image tmp = Image.createImage(screenWidth, srcHeight);
Graphics g = tmp.getGraphics();
int ratio = (srcWidth > 16), 0, Graphics.LEFT | Graphics.TOP);
pos += ratio;
}
Image resizedImage = Image.createImage(screenWidth, screenHeight);
g = resizedImage.getGraphics();
ratio = (srcHeight > 16), Graphics.LEFT | Graphics.TOP);
pos += ratio;
}
return resizedImage;
}//resize image
Espero que te sirva, suerte y por favor no olvides finalizar la pregunta.
Olvide darte esta pagina de referencia, esta en ingles: http://developers.sun.com/mobility/reference/techart/design_guidelines/image_resizing.html
Suerte!
Muchísimas gracias Alejosoft!
He probado el código y me funciona. Consigo adaptar la imagen al tamaño de la pantalla, lo único malo es que pierde calidad la imagen. Supongo que será porque al cambiar de tamaño las proporciones de anchura y altura de la imagen cambian al adaptarse a la pantalla y por este motivo los pixeles se distorsionan.
Me ha sido de gran ayuda tu respuesta y el enlace que me has proporcionado.
Muchas gracias de nuevo!
Un saludo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas