style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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

package clases;

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

package clases;

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.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">