WEB开发网
开发学院软件开发Java 在Canvas上绘制可修改的图片 阅读

在Canvas上绘制可修改的图片

 2007-12-23 12:37:40 来源:WEB开发网   
核心提示:/*--* MutableImage.java** Draw mutable image on a canvas** Example from the book: Core J2ME Technology* Copyright John W. MUChow http://www.CoreJ2ME.com* You ma

/*--------------------------------------------------
* MutableImage.java
*
* Draw mutable image on a canvas
*
* Example from the book:   Core J2ME Technology
* Copyright John W. MUChow  http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/ 
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MutableImageWithCanvas extends MIDlet
{
 PRivate Display display;   // The display
 private ImageCanvas canvas;  // Canvas 
 public MutableImageWithCanvas()
 {
  display = Display.getDisplay(this);
  canvas = new ImageCanvas(this);
 }
 protected void startApp()
 {
  display.setCurrent( canvas );
 }
 protected void pauseApp()
 { }

 protected void destroyApp( boolean unconditional )
 { }
 public void exitMIDlet()
 {
  destroyApp(true);
  notifyDestroyed();
 }
}

/*--------------------------------------------------
* Class ImageCanvas
*
* Draw mutable image
*-------------------------------------------------*/
class ImageCanvas extends Canvas implements CommandListener
{
 private Command cmExit; // Exit midlet
 private MutableImage midlet;
 private Image im = null;
 private String message = "Core J2ME";
 public ImageCanvas(MutableImage midlet)
 {
  this.midlet = midlet;
  // Create exit command & listen for events
  cmExit = new Command("Exit", Command.EXIT, 1);
  addCommand(cmExit);
  setCommandListener(this);

  try
  {
   // Create mutable image
   im = Image.createImage(80, 20);

   // Get graphics object to draw onto the image    
   Graphics graphics = im.getGraphics();

   // Specify a font face, style and size
   Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
   graphics.setFont(font);

   // Draw a filled (black) rectangle
   graphics.setColor(0, 0, 0);
   graphics.fillRoundRect(0,0, im.getWidth()-1, im.getHeight()-1, 20, 20); 
   // Center text horizontally in the image. Draw text in white
   graphics.setColor(255, 255, 255);      
   graphics.drawString(message,
    (im.getWidth() / 2) - (font.stringWidth(message) / 2), 0, 
     Graphics.TOP Graphics.LEFT);
  }
  catch (Exception e)
  {
   System.err.println("Error during image creation");
  }  
 } 

 /*--------------------------------------------------
 * Draw mutable image 
 *-------------------------------------------------*/
 protected void paint(Graphics g)
 {
  // Center the image on the display
  if (im != null)g.drawImage(im, getWidth() / 2, getHeight() / 2, Graphics.VCENTER Graphics.HCENTER);
 }

 public void commandAction(Command c, Displayable d)
 {
  if (c == cmExit)
   midlet.exitMIDlet();
 }
}

(出处:http://www.cncms.com)


Tags:Canvas 绘制 修改

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接