- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7单元 低级用户界面编程
第7章 低级用户界面编程 郝玉龙 E_mail:haoyulongsd@163.com 7.1低级用户界面编程概述 7.2 Graphics绘图 7.3底层事件处理 7.4高级Command命令处理 7.5高级事件与低级事件的并发 7.6高级屏幕与低级屏幕的协同 7.7屏幕事件处理 7.8深入研究屏幕绘制 7.9开发自定义组件 小结 7.1低级用户界面编程概述 高级用户界面API使用起来比较简单,且具有较高的可移植性,但由于是通过底层的MIDP实现来控制最终的UI显示,因此无法实现对屏幕UI组件外观的精确控制。 在一些手机游戏等程序的实现中,要求开发人员必须对屏幕画面的每一个细节都要进行精确控制,这就需要用到低级用户界面API来进行界面开发。 利用低级用户界面API,开发者可以对界面进行更精确的控制,但在获得更大的灵活性的同时也失去了可移植性。 7.1低级用户界面编程概述 MIDP为程序开发人员提供了一组低层API。低层API由Canvas类和一组辅助支撑类(例如图形、字体和图像)组成。用户利用这些低级API可对设备精确控制,如绘制像素、接收原始的用户输入事件等。与高级API相比,开发人员可以更加灵活地控制屏幕绘制,但同时开发的复杂程度也大大提高,并在一定程度上丧失了程序的移植性。 低级用户界面编程必须使用两个关键类:Canvas类和Graphics类。 Canvas是个抽象类,代表要绘制的抽象屏幕。为使用低层API建立用户界面,应用程序必须建立Canvas的一个子类,并实现paint()方法。 Graphics类的实例是作为参数传递给paint()的,它提供了设备绘图能力的入口,它允许在像素层面直接与显示设备交互操作。任何时候系统需要绘制屏幕时,都将调用Canvas类的paint()方法。 低级用户界面编程的核心任务在于在Canvas类的paint()方法中如何利用Graphics对象进行绘图操作。 任何时候开发人员都可以用repaint()来产生重绘事件,从而间接调用Canvas类的paint()方法绘制屏幕。repaint()一共有两个同名方法,其中一个需要四个参数,分别是起始坐标(x,y),还有宽度和高度,另外一个不需要任何参数,它是代表整个屏幕全部重新绘制,显然,前者的效率较后者要高,实际开发中也大多数是用前者而不是后者。 注意:在应用程序中永远不要自行调用paint()方法,要重画屏幕或者重画屏幕中的一部分,应当使用repaint()方法。 程序7-1:MyCanvas.java import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; public class MyCanvas extends Canvas { protected void paint(Graphics g) { g.setColor(255,255,255); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(0,0,255); g.drawString(Hello,world,10,10,Graphics.TOP|Graphics.LEFT); } } 程序7-2:CanvasTest.java import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class CanvasTest extends MIDlet { private Display display; public CanvasTest() { super(); } protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); MyCanvas mc=new MyCanvas(); display.setCurrent(mc); } protected void pauseApp() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } } 7.2 Graphics绘图 7.2.1Graphics绘图坐标 7.2.2颜色操作 在绘制任何对象之前,必须首先为Graphics对象
文档评论(0)