`

《Java 手机/PDA 程序设计入门》读书笔记7--LCDAUI低级API之Canvas

    博客分类:
  • book
阅读更多

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()判断)

分享到:
评论
1 楼 小*子 2010-08-19  
大哥,小弟想请教你一个问题。
我现在在弄一个web程序它是放在pda上面运行的,如何用JAVASCRIPT 根据重力感应切换背景图片。
如大哥愿意帮忙请把解决方案发到我的qq邮箱里
316214129@qq.com
O(∩_∩)O谢谢

相关推荐

    Java手机/PDA程序设计入门简体版代码

    Java手机/PDA程序设计入门简体版代码是一个针对初学者的教程,主要涵盖了使用Java进行移动设备应用开发的基础知识和实践。在这个压缩包中,包含了多个章节的源代码示例,涉及了J2ME(Java 2 Micro Edition)平台,这...

    手机_PDA程序设计入门-Game API入门

    总的来说,手机_PDA程序设计入门-Game API入门是一个涵盖广泛的知识领域,从基本的编程概念到高级的性能优化技术,都需要开发者逐步掌握。通过系统的学习和实践,你将能够在Java ME平台上开发出令人印象深刻的游戏。

    ec-canvas 实现echart图表显示

    ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-...

    java手机PDA程序设计入门-王森

    《Java手机PDA程序设计入门》是一本专为初学者准备的编程指南,主要涵盖了J2ME(Java 2 Micro Edition)技术在手机和PDA设备上的应用。J2ME是Oracle公司推出的一种轻量级Java平台,用于开发和部署在嵌入式设备如手机...

    java手机PDA程序设计入门-王森简体

    《Java手机PDA程序设计入门——王森简体》是一本专为初学者设计的教程,旨在引导读者踏入Java在移动设备开发领域的门槛。这本书由知名作者王森编写,他以其深入浅出的讲解风格和丰富的实战经验,帮助无数学习者理解...

    J2ME-java手机PDA程序设计入门-王森

    《J2ME-java手机PDA程序设计入门-王森》这本书是针对初学者的一本教程,旨在引导读者快速掌握在Java平台上开发移动设备应用程序的基本技能。J2ME,全称Java Micro Edition,是Java平台的一个子集,专门用于资源有限...

    Leaflet.Canvas-Markers-0.2.0

    本文将深入探讨Leaflet.Canvas-Markers-0.2.0,一个专门为Leaflet设计的插件,用于在地图上高效地绘制Canvas标记。 Leaflet.Canvas-Markers是Leaflet的一个扩展,它引入了一种新的标记类型,即使用HTML5 Canvas元素...

    手机PDA程序设计入门-Game API

    在这个特定的场景中,我们关注的是"手机PDA程序设计入门-Game API",这表明我们将深入探讨如何利用API来开发手机和平板设备上的游戏。 J2ME(Java 2 Micro Edition)是Java平台的一个子集,专门用于资源有限的设备...

    WordPress.com REST API开发人员控制台-由https://github.com/Automattic/wp-api-console取代-Node.js开发

    该项目已被https://github.com/Automattic/wp-api-console取代,该项目现在通过developer.wordpress.com为API控制台提供动力。 开发黑客需要node.js,为您的系统安装node.js。 (例如brew install节点)。 要启动并...

    微信小程序 uni-app wxml-to-canvas 小程序内通过静态模板和样式绘制 canvas ,导出图片,可用于生成分

    【微信小程序 uni-app wxml-to-canvas】是一个用于在微信小程序中利用静态模板和样式来绘制canvas,并最终能够导出为图片的工具。这个技术在实际应用中特别适合用来生成分享图,即用户在社交平台上分享时看到的个性...

    微信小程序ec-canvas

    微信小程序是一种轻量级的应用开发平台,主要针对移动端,它允许开发者通过JavaScript、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)来构建应用。在小程序的开发过程中,`ec-canvas` 是一个重要的组件,...

    vue-canvas-poster 海报合成

    7. **CSS布局**:为了将Canvas与其他Vue组件(如按钮、提示信息)正确地组合在一起,需要熟悉Flexbox或Grid布局。 8. **模块化开发**:利用Webpack或其他打包工具将项目拆分为模块,便于管理和维护。 项目中的...

    使用新版canvas-2d接口在微信小程序中生成二维码(外部二维码)的js包

    使用新版canvas-2d接口在微信小程序中生成二维码(外部二维码)的js包

    wxa-comp-canvas-drag-master.zip

    微信小程序canvas-drag组件是为了解决在微信小程序中对图片进行编辑的需求而设计的。这个组件基于canvas元素,提供了一种简单的方式让用户在小程序内部实现图片的拉伸、压缩和裁剪操作。通过这个组件,开发者可以...

    JavaScript-Canvas-to-Blob.zip

    而Canvas to Blob则是一个JavaScript库,它扩展了Canvas的功能,使得我们可以将Canvas上的图形转换为Blob对象,这对于数据存储和传输非常有用。 Blob(Binary Large Object)是JavaScript中用于处理二进制数据的...

    ec-canvas动态加载

    7. **响应式设计**:EC-Canvas基于Canvas,天然支持响应式布局。在不同尺寸的设备上,图表会自动适配屏幕大小,保持良好的视觉效果。 8. **与ECharts的兼容性**:虽然EC-Canvas主要是为移动端设计,但它与ECharts...

    微信小程序F2自定义图表组件f2-canvas-master.zip

    微信小程序F2自定义图表组件f2-canvas-master.zip是一个包含使用F2库在微信小程序中构建自定义图表的资源包。F2是阿里AntV团队开发的一个轻量级、可扩展的移动图表库,它提供了丰富的图表类型和强大的交互功能,能够...

    Api-canvasapi.zip

    Api-canvasapi.zip,用于Instructure画布LMS的PythonAPI包装器。轻松管理课程、用户、成绩册等。,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并...

    vue2插件之@lucky-canvas/vue,大转盘、抽奖、老虎机

    lucky-canvas-vue2插件.zip

    vue-sign-canvas-master.zip

    Vue-sign-canvas-master.zip是一个包含Vue.js组件的压缩包,专为实现电子签名功能而设计。这个组件基于HTML5的canvas元素,使得用户能够在PC和移动设备上进行手写签名,适用于各种需要签名确认的场景,如电子商务、...

Global site tag (gtag.js) - Google Analytics