在Canvas上绘制可修改的图片

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

/*--------------------------------------------------

* 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.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航