`
wanchong998
  • 浏览: 233142 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

手机触摸屏程序开发

    博客分类:
  • J2me
阅读更多
使用J2ME技术实现手机触摸屏开发的方法:

首先的修改调试环境,默认情况下是不支持触摸操作的。



在WTK目录下的\WTK\wtklib\devices\DefaultColorPhone\DefaultColorPhone.properties的文件中的:

touch_screen=false,改成true。

即支持触摸屏开发。



MIDP2.0对于触摸屏方法有三个:

1.pointerDragged(int x, int y) 触摸屏拖拽事件;

2.pointerPressed(int x, int y) 触摸屏按压;

3.pointerReleased(int x, int y) 触摸屏释放;

pointerPressed(int x, int y)当用户按下触摸屏的时候会自动调用这个方法,x,y就是当前触摸的坐标;

pointerReleased(int x, int y)当用户按下释放触摸屏的时候会自动调用这个方法,x,y就是当前释放的坐标。

pointerDragged(int x, int y) 触摸屏拖拽触发的事件;



先给出简单的测试代码(仅有pointerPressed(int,int)):



首先MIDlet:

Java代码
import javax.microedition.lcdui.Display;  
import javax.microedition.midlet.MIDlet;  
import javax.microedition.midlet.MIDletStateChangeException;  
 
public class MyMidlet extends MIDlet {  
 
    public MyMidlet() {  
    }  
 
    protected void destroyApp(boolean flag) throws MIDletStateChangeException {  
    }  
 
    protected void pauseApp() {  
    }  
 
    protected void startApp() throws MIDletStateChangeException {  
        Display.getDisplay(this).setCurrent(new TestPointCanvas());  
    }  
 


import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class MyMidlet extends MIDlet {

public MyMidlet() {
}

protected void destroyApp(boolean flag) throws MIDletStateChangeException {
}

protected void pauseApp() {
}

protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(new TestPointCanvas());
}

}再次Canvas:

Java代码
import javax.microedition.lcdui.Canvas;  
import javax.microedition.lcdui.Graphics;  
 
public class TestPointCanvas extends Canvas {  
      
    private static int rx, ry;  
 
    protected void paint(Graphics g) {  
        g.setColor(255, 255, 255);  
        g.fillRect(0, 0, 240, 320);  
        g.setColor(0, 0, 0);  
        g.drawString("This is a touch test!", 60, 100, 20);  
        g.drawString("left:" + rx, 20, 260, 20);  
        g.drawString("right:" + ry, 180, 260, 20);  
    }  
 
    protected void pointerPressed(int x, int y) {  
        if (x < 40 && y > 240) {  
            doCommandL();  
        }  
        if (x > 200 && y > 240) {  
            doCommandR();  
        }  
        repaint();  
    }  
 
    protected void keyPressed(int key) {  
        if (key == -6) {  
            doCommandL();  
        }  
        if (key == -7) {  
            doCommandR();  
        }  
        repaint();  
    }  
 
    private void doCommandL() {  
        rx++;  
    }  
 
    private void doCommandR() {  
        ry++;  
    }  


import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

public class TestPointCanvas extends Canvas {

private static int rx, ry;

protected void paint(Graphics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, 240, 320);
g.setColor(0, 0, 0);
g.drawString("This is a touch test!", 60, 100, 20);
g.drawString("left:" + rx, 20, 260, 20);
g.drawString("right:" + ry, 180, 260, 20);
}

protected void pointerPressed(int x, int y) {
if (x < 40 && y > 240) {
doCommandL();
}
if (x > 200 && y > 240) {
doCommandR();
}
repaint();
}

protected void keyPressed(int key) {
if (key == -6) {
doCommandL();
}
if (key == -7) {
doCommandR();
}
repaint();
}

private void doCommandL() {
rx++;
}

private void doCommandR() {
ry++;
}
}OK,现在很简单吧。

深入了解了解。

分享到:
评论

相关推荐

    BlackBerry 触摸屏设备编程

    开发用于带触摸屏的 BlackBerry® 设备的应用程序时,您应考虑这些设备的以下 UI 功能: • 触摸屏 • 屏幕方位的重要性 • 触摸屏键盘 • 加速度计(一些带触摸屏的 BlackBerry 设备上) 关于这些项目的具体内容和...

    赛普拉斯推出首款支持Android手机平台的触摸屏器件驱动

    赛普拉斯灵活强大的TrueTouch触摸屏解决方案有了这款I2C接口驱动,便能使基于Android或其他Linux操作系统的手机厂商得以快速简单地实现高性能触摸屏界面。该驱动支持单点和多点出触摸信号,并且能与用早期Android...

    手机号码转换成ASCII码.zip昆仑通态触摸屏案例编程源码资料下载

    昆仑通态触摸屏案例编程源码资料下载昆仑通态触摸屏案例编程源码资料下载昆仑通态触摸屏案例编程源码资料下载昆仑通态触摸屏案例编程源码资料下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 2.适合学生做...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例029 自动运行的多媒体宣传光盘 1.8 多媒体触摸屏程序应用实例 cc实例030 采购中心多媒体触摸屏程序 cc实例031 为触摸屏程序添加虚拟键盘 1.9 窗体位置应用实例 cc实例032 不可移动的窗体 cc实例...

    精通LINUX设备驱动程序开发

    378 18.7.9 触摸屏 379 18.7.10 视频 379 18.7.11 cpld/fpga 379 18.7.12 连接性 379 18.7.13 专用领域电子器件 380 18.7.14 更多驱动程序 380 18.8 根文件系统 380 18.8.1 nfs挂载的根文件系统 381 18.8.2...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例030 采购中心多媒体触摸屏程序   cc实例031 为触摸屏程序添加虚拟键盘   1.9 窗体位置应用实例   cc实例032 不可移动的窗体   cc实例033 始终在最上面的窗体   cc实例034 动画显示窗体   ...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例030 采购中心多媒体触摸屏程序   cc实例031 为触摸屏程序添加虚拟键盘   1.9 窗体位置应用实例   cc实例032 不可移动的窗体   cc实例033 始终在最上面的窗体   cc实例034 动画显示窗体   ...

    智能手机复杂触摸屏接口设计

    在这些电话中,特别受欢迎的是液晶触摸屏接口,用户通过它来使用各种应用程序,或者用手指滚动访问网页。如果希望在不花费大量的时间、预算或者功耗的情况下,开发这类复杂的接口,采用零功耗Altera MAX IIZ CPLD是...

    C#程序开发范例宝典(第2版).part08

    实例028 为触摸屏程序添加虚拟键盘 28 1.8 窗体效果 29 实例029 半透明渐显窗体 29 实例030 窗口颜色的渐变 30 1.9 窗体动画 31 实例031 窗体中的滚动字幕 31 实例032 动画显示窗体 32 实例033 制作闪烁的...

    仿智能手机屏幕触摸划动的jQuery特效

    仿智能手机屏幕触摸划动的jQuery特效,是开发WEB APP常用的程序, 解压密码:1688shop.net

    触摸及键位设置 ChMobileKey

    本程序用于手机Java程序的键值修改,并支持触摸屏机型加入触屏键支持。 大家都经常在自己的手机上安装各种Java游戏或程序,但由于手机按键的不兼容性,导致有很多心仪的游戏无法正常在自己的爱机上正常工作。兼之...

    C#程序开发范例宝典(第2版).part12

    实例028 为触摸屏程序添加虚拟键盘 28 1.8 窗体效果 29 实例029 半透明渐显窗体 29 实例030 窗口颜色的渐变 30 1.9 窗体动画 31 实例031 窗体中的滚动字幕 31 实例032 动画显示窗体 32 实例033 制作闪烁的...

    消费电子中的智能手机复杂触摸屏接口设计

    在这些电话中,特别受欢迎的是液晶触摸屏接口,用户通过它来使用各种应用程序,或者用手指滚动访问网页。如果希望在不花费大量的时间、预算或者功耗的情况下,开发这类复杂的接口,采用零功耗Altera MAX IIZ CPLD是...

    智能手机低功耗触摸屏接口设计

    在智能电话中,液晶触摸屏接口最受欢迎,用户通过它来使用各种应用程序,或者用手指滚动访问网页,这样在节约时间、预算和功耗的情况下,开发这类复杂的接口,AlteraMAXIIZCPLD会是一个不错的选择。定制或者自行设计...

    android开发实例大全_王东华

    本书以Android应用程序的开发为主题,并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。本书的讲述由浅入深,实例全面并典型,几乎囊括了所有和Android应用相关的项目。全书分为...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例030 采购中心多媒体触摸屏程序 实例031 为触摸屏程序添加虚拟键盘 1.9 窗体位置应用实例 实例032 不可移动的窗体 实例033 始终在最上面的窗体 实例034 动画显示窗体 实例035 以时钟显示界面窗体 1.10 ...

    Android手机交互应用开发创意之钥 源代码

     7.1 初认识触摸屏  7.2 多点触控的灵感触动  7.3 触摸应用基础  7.4 手势识别  7.5 双指缩放手势识别  7.6 双指旋转手势识别  7.7 自定义手势识别  第8章 传感器  8.1 方向传感器  8.2 加速度传感器  ...

Global site tag (gtag.js) - Google Analytics