|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-10-20 关键字: J2ME Graphics
Graphics是很重要的类在J2ME里,它有9个静态属性: 1,弄清出坐标:在MIDP中的坐标的y方向与我们平时的相反,它的y轴的方向是向下的. 2,弄清那些静态属性是不可以组合的,如:RIGHT和LEFT显然不能组合,这些组合我们不要想得太复杂,常识判断就够了 3,弄清各个静态属性的使用范围,那些可以修饰图片,那些可以修饰文本等等 4,要把绘制的对象想像成一个矩形,下面是我提供的入门级别的例子. package datuu.srk.demo.canvas; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import java.io.IOException; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.Displayable; public class ImageGraphicsDemo extends MIDlet { private static ImageGraphicsDemo instance; private static ImageGraphicsDemoCanvas displayImageGraphicsDemo; public ImageGraphicsDemo() { instance = this; displayImageGraphicsDemo = new ImageGraphicsDemoCanvas(); } protected void startApp() throws MIDletStateChangeException { Display.getDisplay(instance).setCurrent(displayImageGraphicsDemo); } protected void pauseApp() { } protected void destroyApp(boolean _boolean) throws MIDletStateChangeException { } public static void quitApp() { try { instance.destroyApp(false); } catch(MIDletStateChangeException e) { e.printStackTrace(); } instance.notifyDestroyed(); } } class ImageGraphicsDemoCanvas extends Canvas implements CommandListener { private Image image; private static final int ADJUST =Graphics.HCENTER |Graphics.TOP ; //测试时候要改变的值 public ImageGraphicsDemoCanvas() { init(); } protected void paint(Graphics g) { g.setColor(0,255,0); int x = image.getWidth(); int y = image.getHeight(); System.out.println("现在的图片坐标是:("+x+","+y+")"); g.drawImage(image,x,y,ADJUST); } public void init() { try { image = Image.createImage("/dmusic.png"); } catch(IOException e) { System.out.println("打开图片出现异常"); e.printStackTrace(); } this.addCommand(new Command("退出",Command.EXIT ,1)); this.setCommandListener(this); } public void commandAction(Command command, Displayable displayable) { if(command.getCommandType() == Command.EXIT ) { ImageGraphicsDemo.quitApp(); } } } 下面是绘画线条的例子,注意要先设置所话的属性,再化 package datuu.srk.demo.canvas; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.Displayable; public class LineGraphicsDemo extends MIDlet { private static LineGraphicsDemo instance; private LineGraphicsDemoCanvas displayLineGraphicsDemoCanvas; public LineGraphicsDemo() { instance = this; displayLineGraphicsDemoCanvas = new LineGraphicsDemoCanvas(); } protected void startApp() throws MIDletStateChangeException { Display.getDisplay(instance).setCurrent(displayLineGraphicsDemoCanvas); } protected void pauseApp() { } protected void destroyApp(boolean _boolean) throws MIDletStateChangeException { } public static void quitApp() { try { instance.destroyApp(false); } catch (MIDletStateChangeException e) { e.printStackTrace(); } instance.notifyDestroyed(); } } class LineGraphicsDemoCanvas extends Canvas implements CommandListener { private static final int ADJUST = Graphics.DOTTED | Graphics.HCENTER; public LineGraphicsDemoCanvas() { this.addCommand(new Command("退出", Command.EXIT, 1)); this.setCommandListener(this); } public void paint(Graphics g) { g.setColor(255, 255, 255); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(255, 0, 0); g.setStrokeStyle(Graphics.DOTTED); //虚线 g.drawLine(10, 10, 100, 10); g.setColor(0, 255, 0); g.setStrokeStyle(Graphics.SOLID); //实线 g.drawLine(10, 100, 100, 100); } public void commandAction(Command command, Displayable displayable) { if (command.getCommandType() == Command.EXIT) { LineGraphicsDemo.quitApp(); } } } 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
浏览 1097 次



