当前位置: 代码迷 >> BlackBerry >> BlackBerry触摸屏设备编程(二)
  详细解决方案

BlackBerry触摸屏设备编程(二)

热度:6982   发布时间:2013-02-26 00:00:00.0
【分享】BlackBerry触摸屏设备编程(二)
三 一个触摸屏幕应用界面的例子

 

本章以一个定制的黑莓UI展示程序为例,说明黑莓编程中需要注意的各个方面,通过一个可以定制的个性化的toolbar的实现以及黑莓应用的背景的切换,来说明触摸屏幕编程和普通全键盘手机编制程序的区别。

 

黑莓标准的UI组件里面是没有toolbar的,这里要设计一个toolbar,可以考虑标准UI组件的扩展,这里我们让toolbar继承自HorizontalFieldManager.

基本的toolbar的特性包括排列的方向和toolbar的高宽等等以及组件的排列性质。这些都是可以配置的,如果要做到一个比较灵活的设计,这里我们写死。

 

//public class ToolBarField extends HorizontalFieldManager

public class ToolBarField extends HorizontalFieldManager

{

    //private static final int DefaultButtonHeight = 55;

    //private static final int DefaultButtonWidth = 55;

    private static final int DefaultButtonHeight = 129;

    private static final int DefaultButtonWidth = 129;

  

    private Vector leftJustifiedButtons = new Vector();

    private Vector rightJustifiedButtons = new Vector();

    private int preferredHeight = DefaultButtonHeight;

    private int sideMargin = 3;

    private int buttonSpacing = 2;  

    private int preferredWidth = Display.getWidth();

    private Bitmap bg = null;

 

    ……

}

 

在toolbarfield类的设计中,核心的部分在于

    private Vector leftJustifiedButtons = new Vector();

    private Vector rightJustifiedButtons = new Vector();

这两个是为了放置用户加入扩种的具体field组件,这里使用的是标准的vector元素,可以添加也可以删除组件,这里我们简单起见,只实现添加的接口,如下面的addbutton方法所示:

 

    public void addButton(ToolBarButtonField button, boolean leftJustified)

    {

        super.add(button);

       

        if (button.getPreferredHeight() > preferredHeight)

            preferredHeight = button.getPreferredHeight();

      

        if (leftJustified)

        {

            leftJustifiedButtons.addElement(button);

        }

        else

        {

            rightJustifiedButtons.addElement(button);

        }

}

 

为了实现更加可供定制化的效果,可以扩充Horizontalmanager的subpaint方法,添加部分背景处理的能力:

 

    protected void subpaint(Graphics graphics)

    {      

        if (bg != null)

        {

            for (int x = 0; x < Display.getWidth();)
  相关解决方案