ほぷしぃ

iウィジェットを作ってみよう!

[第4回]iウィジェットのミニアプリ作成と連携

ミニアプリの作成

現在時刻と次の電車の時刻、その次の電車の時刻を表示します。
デフォルト表示するデータはフルアプリで最後に表示された路線です。
キー操作で別の路線の時刻を表示します。
ソースコードはこちらからダウンロードできます。

MainCanvasクラスとMainCanvas関数

ミニアプリ起動時に最初に呼ばれるメイン関数です。

class MainCanvas extends Canvas {
    byte [][][][] data;  //時刻データ
    String [] line;      //路線名データ
    byte lnum;           //選択している路線
    ShortTimer sTimer;

    MainCanvas() {
        setSoftLabel(SOFT_KEY_1, "フルアプリ");
        setSoftLabel(SOFT_KEY_2, "終了");
        setBackground(Graphics.getColorOfName(Graphics.WHITE));
        line = new String[10];           //10路線
        data = new byte[10][22][10][3];  //10路線*22時間*10個*3曜日
        loadData();
    }

paint関数

ミニアプリの画面表示時に呼ばれます。
1秒に1回画面を更新して、最新の時刻に応じた時刻表を表示しています。

public void paint(Graphics g) {
    Font titleFont = Font.getFont(Font.FACE_SYSTEM,32);
    // Calendarクラス型の変数宣言
    Calendar w_calendar;
    // カレンダーのインスタンスを取得
    w_calendar=Calendar.getInstance();
    // カレンダーに現在の時刻を設定
    w_calendar.setTime(new Date());
・・・
    //最初の描画の際にタイマーを作成する
    if(sTimer == null){
        //間隔1秒間、繰り返し有りでタイマーを初期化する
        sTimer = ShortTimer.getShortTimer(this,1,1000,true);
        //タイマーをスタート
        sTimer.start();
    }
    g.lock();
・・・
    g.unlock(true);
}

processEvent関数

キー入力に対してどのような処理を行うか記述します。

public void processEvent(int type, int param) {
    if(type == Display.TIMER_EXPIRED_EVENT){
        //画面を再描画する
        repaint();
    } else if (type == Display.KEY_RELEASED_EVENT) {
        if (param == Display.KEY_SOFT1) {
            /* フルアプリに切り替えます */
            (StarApplication.getThisStarApplication()).changeAppType(StarApplication.STAR_TYPE_FULLAPPLI, null);
        }
        if (param == Display.KEY_SOFT2) {
            (StarApplication.getThisStarApplication()).terminate();
        }
    }
}

loadData関数

データの入力は行わないので読み込み関数のみ作ります。

//時刻表データの読み込み
public void loadData() {

ADF設定

ほとんどデフォルトのままですが以下の2箇所を変更します。
フルアプリと違いDrawAreaは使用せずPalletを使用します。
ミニアプリの見た目を変える場合Palletのサイズに続けて値を設定するのですが今回は使用しないので「::::」としておきます。
SPsize10240
Pallet320x240::::

実行結果

ミニアプリ実行

iウィジェットの連携

iウィジェットの連携

iウィジェットの機能でフルアプリ、ミニアプリ、縮小表示、アイコンが切り替わります。

前のページへ ページのトップへ