特集PC技術

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のサイズに続けて値を設定するのですが今回は使用しないので「::::」としておきます。

SPsize 10240
Pallet 320x240::::

実行結果

ミニアプリ実行

iウィジェットの連携

iウィジェットの連携

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

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1050

pagetopこのページの先頭へ戻る