j2me-显示、移动图像,移动文本
2009-12-20 20:36
330 查看
1、显示、移动图像:
1)image=Image.createImage(70,70);
使用createImage创建动态图像对象,即在创建了一个存储图像的内存块,但目前这个内存块并无图像
2) Graphics graphics=image.getGraphics();
graphics.setColor(255,0,0);
graphics.fillArc(10,10,60,50,180,180);
在图像内存块中绘制一个圆弧,注意这仅是图像实例,并没有在屏幕显示出来。
3)public void paint(Graphics g) {
if (image!=null){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.translate(45, 45);
g.drawImage(image, 0, 0, Graphics.VCENTER|Graphics.HCENTER);
}
}
完成把图像显示出来。
g.translate(45, 45);
完成对画布左上角坐标(0,0)所代表的实际坐标的重新赋值,进行坐标转换。此方法仅影响调用之后所建文本和图像的位置。
drawImage完成显示图像功能
2、图
3、代码
MIDPCanvas.java
package test;
import javax.microedition.lcdui.*;
public class MIDPCanvas extends Canvas implements CommandListener{
private Midlet midlet;
private Command cmd_exit;
private Image image=null;
publicMIDPCanvas(Midlet midlet) {
this.midlet=midlet;
cmd_exit=new Command("退出", Command.EXIT, 1);
try {
image=Image.createImage(70,70);
Graphics graphics=image.getGraphics();
graphics.setColor(255,0,0);
graphics.fillArc(10,10,60,50,180,180);
// Set up this canvas to listen to command events
setCommandListener(this);
// Add the Exit command
addCommand(cmd_exit);
} catch(Exception e) {
e.printStackTrace();
}
}
public voidpaint(Graphics g) {
if (image!=null){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.translate(45, 45);
g.drawImage(image, 0, 0, Graphics.VCENTER|Graphics.HCENTER);
}
}
protected void keyPressed(int keyCode) {
}
protected void keyReleased(int keyCode) {
}
protected void keyRepeated(int keyCode) {
}
protected void pointerDragged(int x, int y){
}
protected void pointerPressed(int x, int y){
}
protected void pointerReleased(int x, int y){
}
public voidcommandAction(Command command, Displayable displayable) {
if (command==cmd_exit){
midlet.exitMidlet();
}
}
}
Midlet.java
package test;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet {
privateMIDPCanvas canvas;
privateDisplay display;
publicMidlet(){
canvas=new MIDPCanvas(this);
display=Display.getDisplay(this);
}
public voidstartApp() {
display.setCurrent(canvas);
}
publicvoid pauseApp() {
}
public voidexitMidlet(){
destroyApp(true);
notifyDestroyed();
}
publicvoid destroyApp(boolean unconditional) {
}
}
1)image=Image.createImage(70,70);
使用createImage创建动态图像对象,即在创建了一个存储图像的内存块,但目前这个内存块并无图像
2) Graphics graphics=image.getGraphics();
graphics.setColor(255,0,0);
graphics.fillArc(10,10,60,50,180,180);
在图像内存块中绘制一个圆弧,注意这仅是图像实例,并没有在屏幕显示出来。
3)public void paint(Graphics g) {
if (image!=null){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.translate(45, 45);
g.drawImage(image, 0, 0, Graphics.VCENTER|Graphics.HCENTER);
}
}
完成把图像显示出来。
g.translate(45, 45);
完成对画布左上角坐标(0,0)所代表的实际坐标的重新赋值,进行坐标转换。此方法仅影响调用之后所建文本和图像的位置。
drawImage完成显示图像功能
2、图
3、代码
MIDPCanvas.java
package test;
import javax.microedition.lcdui.*;
public class MIDPCanvas extends Canvas implements CommandListener{
private Midlet midlet;
private Command cmd_exit;
private Image image=null;
publicMIDPCanvas(Midlet midlet) {
this.midlet=midlet;
cmd_exit=new Command("退出", Command.EXIT, 1);
try {
image=Image.createImage(70,70);
Graphics graphics=image.getGraphics();
graphics.setColor(255,0,0);
graphics.fillArc(10,10,60,50,180,180);
// Set up this canvas to listen to command events
setCommandListener(this);
// Add the Exit command
addCommand(cmd_exit);
} catch(Exception e) {
e.printStackTrace();
}
}
public voidpaint(Graphics g) {
if (image!=null){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.translate(45, 45);
g.drawImage(image, 0, 0, Graphics.VCENTER|Graphics.HCENTER);
}
}
protected void keyPressed(int keyCode) {
}
protected void keyReleased(int keyCode) {
}
protected void keyRepeated(int keyCode) {
}
protected void pointerDragged(int x, int y){
}
protected void pointerPressed(int x, int y){
}
protected void pointerReleased(int x, int y){
}
public voidcommandAction(Command command, Displayable displayable) {
if (command==cmd_exit){
midlet.exitMidlet();
}
}
}
Midlet.java
package test;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet {
privateMIDPCanvas canvas;
privateDisplay display;
publicMidlet(){
canvas=new MIDPCanvas(this);
display=Display.getDisplay(this);
}
public voidstartApp() {
display.setCurrent(canvas);
}
publicvoid pauseApp() {
}
public voidexitMidlet(){
destroyApp(true);
notifyDestroyed();
}
publicvoid destroyApp(boolean unconditional) {
}
}
相关文章推荐
- seed-dvs6467 encodedecode实例 采集的图像质量很差,只有隔行显示,而且每帧图像不断的往下移动?
- j2me-canvas显示文本
- SilverLight中的文本和图像显示
- 怎样让移动图像显示更快一些...
- ASCII Art—使用纯文本来显示图像:综述
- 怎样让移动图像显示更快一些...
- 鼠标在文本上移动时层的显示与消失
- js 鼠标移动到控件显示控件的文本信息 移出则不显示
- 两种方法,针对EditText密码的显示和隐藏(包括激将光标移动到文本末尾)
- 移动光标到相应的文本(比如项目中,插入了图片之后,即在插入的地方显示光标)
- 怎样让移动图像显示更快一些...
- 鼠标在文本上移动时层的显示与消失(以及层里显示图片)ASP.NET
- MFC图像处理-图像移动显示算法
- 文本标签随着文本的长度移动显示的Textview
- 左下角随机显示的漂浮图像,可以随滚动条上下移动
- 鼠标在按钮上移动、按下或者弹起时显示按钮功能提示文本
- 自定义View(2):自定义文本和图像显示
- J2ME简单灵活实现手机中自动换行显示文本
- 怎样让移动图像显示更快一些...
- (转)使用OpenGL显示图像(五)添加移动