首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> J2ME >> 界面UI >> 正文
在Canvas上绘制可修改的图片
作者:john    文章来源:corej2me    更新时间:2007-2-25 16:11:34
/*--------------------------------------------------
* MutableImage.java
JAVA手机网[www.cnjm.net]
*
* Draw mutable image on a canvas
*
JAVA手机网[www.cnjm.net]
* 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
JAVA手机网[www.cnjm.net]
 private ImageCanvas canvas;   // Canvas
 public MutableImageWithCanvas()
 {
   display = Display.getDisplay(this);
JAVA手机网[www.cnjm.net]
   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;
JAVA手机网[www.cnjm.net]
 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);
JAVA手机网[www.cnjm.net]
   setCommandListener(this);

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

     // Get graphics object to draw onto the image        
JAVA手机网[www.cnjm.net]
     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,
JAVA手机网[www.cnjm.net]
        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);
 }

JAVA手机网[www.cnjm.net]
 public void commandAction(Command c, Displayable d)
JAVA手机网[www.cnjm.net]
 {
   if (c == cmExit)
     midlet.exitMIDlet();
 }
}
相关文章:
j2me低级UI文字分行
一些实用的图形用户界面方法
MFC以及J2ME开发心得
开发易于移植的J2ME游戏
关于j2me game双缓冲实现探讨
如何在MIDP中实现图片放缩
手机游戏换皮技术教程
j2me 图片的高效翻转
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号