Canvas类
说到J2ME的低级用户界面,就不得不说一说Canvas类。 Canvas类是Displayable类的子类,它提供了绘制方法和应用程序的一些低级事件处理方法。例如键盘按键事件等,以及需要绘制屏幕的程序。由于Canvas类的paint()方法被声明为抽象方法,所以Canvas类也是一个抽象类。
绘制屏幕
Canvas类前面提到过可以看做一块画布,可以在上面绘制图画,甚至文字,那么它肯定就会有绘制这个方法。Paint(Graphics g)方法是Canvas类中提供的用来绘制屏幕的方法,它的方法原型如下:protected abstract void paint(Graphics g)
按键事件
在高级用户界面中,每一个高级事件都有一个相应的事件监听接口。应用程序可以定义监听器,并且用屏幕类对象进行注册。如果Canvas类对低级事件也采用同样的事件处理模式,那么就需要创建一些新的监听器接口,使每一个事件都对应一个监听器。这种方法将使API变得非常复杂。因此在低级用户界面API中的事件处理中采用了另外一种模式,它同J2SE AWT中基于级别的事件处理模式相类似。所有的事件都提供给Canvas,而应用程序可以根据自己的需要决定处理哪些事件。
游戏动作
在手机游戏开发中,经常用游戏动作来代替键码。Canvas中定义了游戏动作常量 。
Graphics类:
Graphics类的坐标系 :![](https://i-blog.csdnimg.cn/blog_migrate/ce32dc776aeecde7e21fe2b8644ccf94.png)
文字显示
Graphics类使用下面的方法绘制字符串:
drawString(string text,int x,int y,int anchor)此方法使用当前字体,当前颜色绘制字符串。参数text是需要绘制的字符串, x、y是文字坐标, anchor表示锚点。
图像绘制
1. Image类概述Image用来操作图形图像数据。这些数据可以绘制在低级用户界面上,也可以与高级用户界面的某些组件相关联起来,例如Alert、ImageItem等。不能使用new方法生成一个Image类的对象,而是用Image类的静态方法createImage()。建立的图像可以分为以下两类:
1) 不可变图像(也称为静态图像):从现有文件上加载图像数据生成,一旦生成就不能改变。2) 可变图像(也称为动态图像):可变图像在内存中创建,并且可以修改。