blackberry触摸屏设备编程(一)

这篇文章我酝酿很久了,现在9800出来,黑莓的触屏开发应该会有一个比较热的趋势,就发布出来吧。

 

触摸屏设备编程1

 

 

一 触摸屏幕设计需要注意的地方

 

开发用于带触摸屏的 BlackBerry® 设备的应用程序时,您应考虑这些设备的以下 UI 功能:

• 触摸屏

• 屏幕方位的重要性

• 触摸屏键盘

• 加速度计(一些带触摸屏的 BlackBerry 设备上)

 

关于这些项目的具体内容和细节,可以参考blackberry的编程白皮书:BlackBerry Java Application

Transitioning to Touch Screen Development.

 

 

二 触摸屏幕的具体编程和设计的要求

 

随着触摸屏幕手机的引入,BlackBerry也加入了相应API的支持:

net.rim.device.api.ui.Touchscreen

这个类的作用就是系统用来判别当前手机是否是触屏的utility类别,所以一个比较通用的java程序的做法就是在程序入口中加入这样的逻辑判断:

        if(Touchscreen.isSupported())

        {

            /* Touch screen logic     */

        }

        else

        {

            UiApplication.getUiApplication().invokeLater(new Runnable()

            {

                public void run()

                {

                    Dialog.alert("This application requires a touch screen device.");

                    System.exit(0);

                }

            });

        }

JDE5.0的示例程序中,有一个例子touchdemo,有关于这个工具类的具体使用方法,可以参考相应的代理例子在做一个通用的blackberry客户端程序。

 

触屏手机的引入,可以加入对屏幕的方向的变化,这个在原有的全键盘手机中是没有的,所以在触摸屏幕手机开发应用过程中,需要加入相应的响应的逻辑.

有两种方式可以用来对屏幕的方位进行控制和调整,第一种方式是在screensublayout方法中。

 

public void sublayout(int width, int height) 

    //update scrren layout based on orientation 

    if(Display.getOrientation()== Display.ORIENTATION_LANDSCAPE) 

    { 

    invalidate(); 

    } 

    else if(Display.getOrientation()== Display.ORIENTATION_PORTRAIT) 

    { 

     invalidate(); 

    } 

    super.sublayout(width, height); 

 

还有一种方式是在应用中显式调用屏幕的方位信息,然后做出调整:

switch(Display.getOrientation())

{

case Display.ORIENTATION_LANDSCAPE:

Dialog.alert("Screen orientation is landscape"); break;

case Display.ORIENTATION_PORTRAIT:

Dialog.alert("Screen orientation is portrait"); break;

case Display.ORIENTATION_SQUARE:

Dialog.alert("Screen orientation is square"); break;

default:

Dialog.alert("Screen orientation is not known"); break;

}

 

除了对屏幕方位也就是重力切换的处理,在触摸屏幕编程中,需要考虑UI事件的处理和全键盘手机的不同,关于这部分的具体处理,可以参考下面部分的示例以及后续的内容介绍。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
摘要:基本上将常用的软件可以在BB用的替代品都找到了,还是感觉自己想要的一些功能没有能实现,于是有了自己写一个程序的想法。初步看了一些开发的文章,BB的程序都是基于Java的,Java以前用过。有好的工具,充分的文档,写一个程序也许不是太大的困难。网上转转,才发现讲BB应用的资料多,探讨BB软件开发的少,好的内容基本都是E文的。将自己边学边用的过程记录下来,遇到的问题是怎么解决的,也许可以让更多的同学少走弯路,不要被一个无法编译通过的“HelloWorld”程序就沮丧得失去了热情。 购入BB8820有一段时间了,的确被其易用、高效所折服。以前也用过Nokia S60 S90的机器,用过基于Windows Mobile的iPaq,都未曾有这样的感觉。基本上将常用的软件可以在BB用的替代品都找到了,还是感觉自己想要的一些功能没有能实现,于是有了自己写一个程序的想法。 初步看了一些开发的文章,BB的程序都是基于Java的,Java以前用过。有好的工具,充分的文档,写一个程序也许不是太大的困难。网上转转,才发现讲BB应用的资料多,探讨BB软件开发的少,好的内容基本都是E文的。真正着手开始边学边用,才发现搭建一个流程的开发环境也不是易事。 我不是专业的Coder更算不上程序员,用过从C、PHP、Delphi、Powerbuilder、VB.Net、T-SQL等多个语言,在Unix、Windows、WM下都开发过程序。感觉就是语言总是相通的,熟悉一门语言,学习另一门语言就是规则的迁移而已。还有为学语言而学习,总是会半途而废,只有是为了解决工作的中的问题、找一个应手的工具,在遇到问题解决问题的过程中不断提高,对语言的理解和应用水平也就突飞猛进了。从工作实习时第一个用Foxpro写的代理行业务记录和统计程序开始,大大小小也写了很多软件或称为程序吧。可惜由于都是与工作相关,无法分享出来,但一个个岗位过来看到同事们能用我写的东东提高效率解决问题,也是挺开心的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值