BlackBerryUI設計大全(四)

2基於Third partyUI庫的設計

直接使用MIDPUI組件來做應用界面和接口,很多時候需要大量的編程和設計工作。爲了減輕開發者的負擔,J2ME平臺上也有很多這樣的UI設計支撐庫,本節我們一LWUIT這個應用比較廣泛的例子爲例,說明如果在BlackBerry J2ME平臺上使用GUI Library去設計這個九宮格程序。

2.1 基於LWUITUI庫的設計規範

The Lightweight UI Toolkit (LWUIT) 是一個輕量級JavaME UI工具包。LWUIT類似Swing MVC架構, 支持多種佈局(Layouts, 皮膚更換, 字體, 觸摸屏, 動畫效果, Rich控件, 3D集成, Painter, 模式對畫框, I18N/L10N等。

  Sun2008年的JavaOne會議上向開發者社區推薦了LWUIT,展示了預先發布的二進制文件庫,附加工具和擴展文檔,讓開發者可以快速上手,現在Sun把整個源代碼都開放出來,更方便開發者利用LUWIT開發JavaME應用。關於LWUIT庫的使用,可以從SUN的官方網絡拿到基本示例和說明的文檔。

九宮格說白了就是幾個按鈕,擺的整整齊齊。既然是這樣就先做個MainForm,採用GridLayout()佈局,然後在Form裏面做幾個按鈕,每一個按鈕代表一個Form

具體步驟如下:

1.MainForm中以GridLayout形式排列九個按鈕

2.建立一個BaseForm,添加一個BackCommand

3.創建9Form繼承自BaseForm

public class MainForm extends Form implements ActionListener {

    public static String currentText;

    Command Option_CMD = new Command("選項", 0);

    Command Exit_CMD = new Command("退出", 1);

    public MainForm() {

    //設置窗體翻轉效果

        Transition in = CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 300);

        setTransitionInAnimator(in);

        //設置這個currentText,是爲了在點擊某個按鈕進入某個Form,然後回退時,焦點仍然在這個按鈕上

        if (currentText == null) {

            currentText = "我的空間";九宮格說白了就是幾個按鈕,擺的整整齊齊。既然是這樣就先做個MainForm,採用GridLayout()佈局,然後在Form裏面做幾個按鈕,每一個按鈕代表一個Form

 

       setLayout(new BorderLayout());

        getTitleComponent().setVisible(false);

        try {

           

            String[] texts = new String[]{

                "menu1",

                "menu2",

                "menu3",

                "menu4",

                "menu5",

                "mene6",

                "menu7",

                "menu8",

                “menu9”};

            /*

           下面是基於LCDUI頁面佈局的主要框架代碼

            */

            Container buttonContainer = new Container(new GridLayout(3, 3));

            for (int i = 0; i < texts.length; i++) {

                Image unsel_img = r2.getImage(imgNames[i] + ".png");

                final Button b = new Button(texts[i], unsel_img);

                //setRolloverIcon當按鈕被選中時

                b.setRolloverIcon(r2.getImage(imgNames[i] + "_sel.png"));

                b.setAlignment(Label.CENTER);

                b.setTextPosition(Label.BOTTOM);

                b.setUIID("DemoButton");

                buttonContainer.addComponent(b);

            }

            addComponent(BorderLayout.CENTER, buttonContainer);

            addCommand(Option_CMD);

            addCommand(Exit_CMD);

            addCommandListener(this);

            show();

        } catch (IOException ex) {

            ex.printStackTrace();

        }

    }

    }

    }

}

最後LWUIT實現的效果,和我們基於MIDP高級UI的效果比較相像。這裏需要注意是,在BlackBerry上使用第三方jar庫的時候,需要把相應的JAR庫轉成BlackBerry上可以運行的cod文件。

爲什麼要討論3rd-partyUI library,也是爲了突出BlackBerry自己的UI Library的效果,在KVM平臺上的應用UI設計,BlackBerryUI Library是獨樹一幟的。

3基於BlackBerryUI組件的設計

使用過類似LWUIT的佈局組件,再使用BlackBerry原生的UI組件來設計UI就會發現這個非常熟悉。

BlackberryUI組件功能更多,使用更加靈活也更加便捷,關於BlackBerryUI基本組件的應用介紹,可以參閱BlackBerry基本UI設計

瞭解基本UI的設計方法之後,通過BlackBerryUI佈局組件,可以設置鋪放UI組件到BlackBerry屏幕的效果,可以得到一個完成的基於BlackBerry UI組件和屏幕布局實現的九宮格程序的介紹。這裏就不詳細敘述了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章