Redimensionar y Mover Imagen con Teclado, JME
Redimensionar y Mover Imagen con Teclado, JME
Hoy les traigo un pequeño ejemplo de como podemos desde nuestros dispositivos moviles, redimensionar el tamaño de una imagen y ademas reubicarla con ayuda del teclado.
Con 2,4,6 y 8 se reubica la imagen en la pantalla y con * y # se redimensiona la imagen.
Codigo
Clase Principal
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class Principal extends MIDlet {
Display display;
Pantalla pantalla;
public Principal() {
display=Display.getDisplay(this);
pantalla=new Pantalla(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
display.setCurrent(pantalla);
}
}
Clase Pantalla
import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDletStateChangeException;
public class Pantalla extends Canvas implements CommandListener{
Image img,imgreducida;
int anchooriginal=0;
int altooriginal=0;
int anchofinal=200;
int altofinal=170;
int x=0;
int y=0;
Command exit;
Principal p;
Graphics g;
public Pantalla(Principal p){
this.p=p;
try {
img=Image.createImage("/robot-rata.jpg");
anchooriginal=img.getWidth();
altooriginal=img.getHeight();
exit=new Command("Salir", Command.EXIT, 0);
setCommandListener(this);
} catch (IOException e) {
e.printStackTrace();
}
}
protected void paint(Graphics g) {
this.g=g;
Image thumb = Image.createImage(anchofinal, altofinal);
Graphics g2 = thumb.getGraphics();
for (int y = 0; y < altofinal; y++) {
for (int x = 0; x < anchofinal; x++) {
g2.setClip(x, y, 1, 1);
int dx = x * anchooriginal / anchofinal;
int dy = y * altooriginal / altofinal;
g2.drawImage(img, x - dx, y - dy, Graphics.LEFT | Graphics.TOP);
}
}
Image immutableThumb = Image.createImage(thumb);
this.g.setColor(255, 255, 255);
this.g.fillRect(0, 0, getWidth(), getHeight());
this.g.drawImage(immutableThumb, x,y, Graphics.LEFT | Graphics.TOP);
}
public void commandAction(Command arg0, Displayable arg1) {
Command c=(Command)arg0;
if(c.equals(exit)){
try {
p.destroyApp(false);
p.notifyDestroyed();
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
}
}
protected void keyPressed(int keyCode) {
switch(keyCode){
case Canvas.KEY_NUM2:
if(y>0){
y-=20;
}
break;
case Canvas.KEY_NUM4:
if(x>0){
x-=20;
}
break;
case Canvas.KEY_NUM6:
if(x<getWidth()-anchofinal){
x+=20;
}
break;
case Canvas.KEY_NUM8:
if(y<getHeight()-altofinal){
y+=20;
}
break;
case Canvas.KEY_STAR: anchofinal-=20;
altofinal-=20;
break;
case Canvas.KEY_POUND:anchofinal+=20;
altofinal+=20;
break;
}
repaint();
}
}
Descargar
Pueden descargar el proyecto desde aquí. Recuerden visitar Java Zone para mas información.
- roger1345's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 2 semanas 1 día
hace 3 semanas 4 días
hace 15 semanas 1 día
hace 19 semanas 1 día
hace 26 semanas 5 días
hace 34 semanas 5 días
hace 37 semanas 3 días
hace 39 semanas 11 horas
hace 42 semanas 1 día
hace 42 semanas 1 día