创建使用触摸屏的Java 程序.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
创建使用触摸屏的Java 程序.docx

创建使用触摸屏的Java ME 程序杨建强摘要:介绍了Canvas 类中可用于捕获触摸屏事件的方法,创建了一个类似于iPhone 手机上的图片浏览程序。关键词: Java ME; Canvas1 Canvas 类??? Canvas 类位于javax.microedition.lcdui 包中,它提供了低级屏幕和图像操作方法。该类自身是抽象类,使用的时候需要给出具体的实现。Canvas 中最重要的方法是paint (Graphics g),它完成图像的实际绘制。当然,在这里paint () 方法并不是重点,感兴趣的是其他5 个方法,它们可用于创建使用触摸屏的Java ME 程序。这些方法包括hasPointerEvents ()、hasPointer-MotionEvents ( ) 、pointerDragged ( int x, int y) 、pointerPressed(int x, int y),以及pointerReleased (int x, int y)。这5 个方法最初被用于处理具有指点能力的界面———也即用户能够使用指点设备与这样的界面交互。不过,在具有触摸功能的非指点设备上,这些方法工作得一样好。??? 当发生指点事件时,也即按下、释放和拖动指点设备时,系统会分别调用pointerPressed (int x, int y) 、pointerReleased(int x, int y) 和pointerDragged (int x, int y) 方法,此时,参数x、y 中存有指点事件发生时指点所在的坐标。因此,可以利用这些方法获得指点所在的位置,并根据需要完成相应的操作。注意,系统对这些方法的调用是串行的,也即系统从不在前一个调用方法返回之前调用另一个方法。方法hasPointerEvents() 检查设备是否支持指点按下和释放事件。当has-PointerEvents () 返回true 时,意味着设备支持pointerPressed(int x, int y) 和pointerReleased (int x, int y) 方法。方法has-PointerMotionEvents () 检查设备是否支持指点移动事件。当hasPointerMotionEvents () 返回true 时,意味着设备支持pointerDragged(int x, int y) 方法。2 利用Canvas 创建触摸屏图片浏览器??? 有了前面的基础,现在来创建一个类似于iPhone 手机上的触摸屏图片浏览器。首先,让先看一下程序运行时的屏幕截图,从而搞清楚要实现的效果是什么。如图1 显示Java ME程序启动后加载的图片,以及稍微向左拖动或滑动该图片后的效果。?图1 刚加载的图片(左)和向左稍微滑动之后的图片(右)???? 顺便说一下,使用Java ME SDK 3.0 作为测试平台,并选用DefaultFxTouchPhone1 作为目标模拟器。因此,给出的屏幕截图来自于电脑上运行的模拟器。当然,在模拟器只能使用鼠标来代替手指。??? 选择的图片比屏幕的尺寸要宽一些,为的是创造出图片滚动的效果。在实际设备上,当手指在屏幕上左右滑动时,程序会根据滑动的距离显示出当前图片的剩余部分,或者显示出前一幅或下一幅图片。图片刚加载时剩余部分位于屏幕右侧。程序是这样设置的,如果水平滑动的距离少有20 个点(像素),将显示出当前图片的剩余部分。如果滑动的距离超过20 个点,则显示前一幅或下一幅图片(分别对应向左、向右滑动),如图2 所示。要达到的效果就是通过手指的滑动来逐个显示图片库中的图片。?图2 刚加载的图片(左)和向左(或向右)滑动超过20 个点之后的图片(右)???? 知道了想要的结果,现在来看一看完成上述任务的Canvas类的代码。public class BrowseImageCanvas extends Canvas {private boolean scroll = false;private int currentImage = 0;private Image[] images; // 存放多个图片,相当于图片库private int pressX, releaseX, dragX = 0;public BrowseImageCanvas() {// 启动时加载图片,这里加载3 个图片images = new Image[3];images[0] = Image.createImage(/flower0.jpg);images[1] = Image.createImage(/flower1.jpg);images[2] = Image.createImage(/flower2.jpg);}protected void

文档评论(0)

zhoubingchina + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档