Java手机软件图形界面API之低级GUI组件 - 编程入门网
来实现动画的平滑显示效果。在这种技术中,你不是在显示屏上绘图,而是绘制到显示屏的一个拷贝上(一个脱屏的缓冲区)-它是内存的一部分。当缓冲区绘制结束,你就可以把缓冲区内容拷贝到显示屏上。这里的基本原理是,直接拷贝内存内容到显示屏上要快于用原型绘制的速度。
要实现双缓冲,可以先生成一个其尺寸与屏幕一样的易变图像:
然后,取得缓冲区的图形上下文: Graphics gc = buffer.getGraphics( ); 现在,你可以在缓冲区中绘图了:
当需要把缓冲区拷贝到屏幕上时,你可以重载方法paint( )来把缓冲区内容绘制到设备显示屏上:
注意,一些MIDP实现中已经采用了双缓冲机制,因此这里的工作可能是不必要的。你可以使用Canvas的isDoubleBuffered( )方法来检查是否图形是双缓冲方式实现的。 Java手机软件图形界面API之低级GUI组件(3)时间:2012-01-033. 线程问题 MIDP GUI API是线程安全的。即是说,GUI API方法可以在任何时候从任何线程中调用。唯一的例外是Canvas类的serviceRepaints( )方法,它立即调用了paint( )方法以强迫显示的立即重绘。这是说,如果paint( )方法想在任何的应用程序调用serviceRepaints( )时已锁定的对象上同步,应用程序将会产生死锁。为了避免死锁,在使用了serviceRepaints( )方法时,请不要锁定将被paint()方法使用的对象。 另外,在所有未执行的重绘满足后,你可以使用Display类的方法callSerially( )来执行代码,如下所示:
在此,对象的run( )方法在初始化结束后被调用。 4. 字体 应用程序不能自己产生字体。代之的是,应用程序应该要求基于一些属性(如大小,字体名称,字形)的一种字体,底层系统将试着返回一种与要求的字体最相近的字体。Font 类用来描述各种字体和尺寸。在Font 类中一共定义了三种字体属性,每一种属性取值不同,如下:
例如,要指定一种中等大小的字体,可以使用Font.SIZE_MEDIUM;用Font.STYLE_ITALIC来指定倾斜字形,等等。字形属性值可以用OR(|)操作符结合;另外一些属性值不能结合。例如:下面这种属性值指定了一种常规,带下划线的字体: STYLE_PLAIN | STYLE_UNDERLINED 而,下面是非法的组合: SIZE_SMALL | SIZE_MEDIUM 下面也是非法的: FACE_SYSTEM | FACE_MONOSPACE 系统中的每种字体实际上都是分别实现的,所以为了取得描述字体的对象,可以用getFont( )方法--该方法有三个参数,分别对应字体的字面,大小和字形。如,下面的代码以指定的字面,大小和字形属性得到一个Font对象: Font font = Font.getFont(FACE_SYSTEM,STYLE_PLAIN, SIZE_MEDIUM); 如果没有相匹配的字体,系统将尽可能提供最相近的匹配-总是一个有效的字体对象。 一旦得到一种字体,你就可以使用Font类的方法来检索这种字体的信息。如,你可以用getFace(),getSize( )和getStyle( )方法来分别检索该字体的字面,大小和字形信息。 Java手机软件图形界面API之低级 |
||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |