软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
《Java 手机/PDA 程序设计入门》读书笔记7--LCDAUI低级API之Canvas

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

Canvas帮助我们处理低级系统事件。

重绘事件
一个是用低级API的系统至少要具有描绘画面的能力。

startApp(){
MyCanvas mc=new MyCanvas();
display.setCurrent(mc);
}

public class MyCanvas extends Canvas
{
  public void paint(Graphics g){
  { //code of paint.
 
  }
}
serviceRepaints()用来强制队列中的重绘事件快点做完。

坐标系
迪卡尔坐标系的Y轴方向向下就是我们屏幕上的坐标系。

坐标
是指像素(Pixel)和像素之间的空格所构成的坐标。

Graphics--画布
setColor(R,G,B) --value0~255
getRedComponent()
getGreenComponent()
getBuleComponent()

setColor(0x00RRGGBB) / getDisplayColor();

线 drawLine(start X,start Y,end X,end Y)

笔触(stroke style)--Graphics.SOLID 、Graphics.DOTTED
setStrokeStyle(Graphics.SOLID )

矩形 drawRect(start X,start Y,width,height)

圆角矩形 drawRoundRect(start X,start Y,width,height,arcWidth,arcHeight)
后两个参数:圆角所在矩形的宽和高。

填充矩形 fillRect(start X,start Y,width,height)

填充圆角矩形 fillRoundRect(start X,start Y,width,height,arcWidth,arcHeight)

弧形 drawArc(start X,start Y,width,height,arc,over)
前四个参数决定弧形所在的矩形范围,第五个决定起始角度,第六个决定弧形本身所涵盖的角度。

填充三角形 fillTriangle(x1,y1,x2,y2,x3,y3)

Canvas与屏幕事件处理
Canvas本身有两种状态:
普通状态-Normal 全屏状态-Full Screen
setFullScreenMode()来设定其状态。

当屏幕被系统画面覆盖时,自动调用hideNotify()
当系统画面消失时,恢复了原本的画面,系统会调用showNotify()

键盘事件处理
按下按钮引发keyPressed() 函数,传入一个代表该键的整数值
放开按钮引发keyReleased()函数,传入一个代表该键的整数值
连按按钮引发KeyRepeated()函数,传入一个代表该键的整数值;
不是所有机器都支持,hasRepeatEvents()来询问系统是否支持连发事件。

键盘响应
Canvas类里定义的常数:KEY_NUM0~KEY_NUM9、KEY_STAR,KEY_POUND分别代表0~9数字键和星井键。另外定义了几个与Game键盘代码相关的常数:UP,DOWN,LEFT,RIGHT,FIRE,GAME_A,GAME_B,GAME_C,GAME_D

getGameAction()
该函数传入keyCode,函数会回传所代表的Game键盘代码
switch(getGameAction(keyCode))
{
     case Canvas.LEFT:
           moveLeft();
           break;

getKeyCode()
该函数传入Game键盘代码,函数会回传所代表的keyCode。 和上个函数互为反函数。
if (keyCode==getKeyCode(Canvas.LEFT))
moveLeft();

触摸屏事件
用hasPointerEvents()判断是否支持触摸屏事件。
触控笔点击 引发pointerPressed(),传入xy坐标
放开引发pointerReleased(),传入xy坐标。
拖拽 pointerDragged() (某些机器可以,用hasPointerMotionEvents()判断)




相关文章

相关软件