アフィリエイト広告を利用しています
最新記事
日別アーカイブ

広告

posted by fanblog

2012年10月20日

メニューの作り方

今回は、メニューの作り方を解説します。

ソフトキーを押したときに、画面左下、または右下に項目選択できるインターフェースを実装します。

いろいろな実装方法がありますが、今回の方法がいちばん汎用性がありそうだったので、
考え方だけ載せておきます。

メニュークラスは Graphics を使用して描きますので、Canvas をベースにします。

class Menu extends Canvas {
}

コンストラクタでは、メニューを開いたときのソフトキーの設定を行ないます。
引数に、親画面の Canvas を指定します。これは後で役に立ってきます。
今回は、右ソフトキーに「閉」を設定します。

private Canvas canvas;
Menu(Canvas canvas){
 this.canvas = canvas;
 setSoftLabel(Canvas.SOFT_KEY_1, null);
 setSoftLabel(Canvas.SOFT_KEY_2, "閉");
}

表示時にはメニューに対して、setCurrent を実行するわけですが、
そうすると背景の画面が消えてしまいます。
Canvas は透過できないようなので、ここをフォローする必要があります。

どうするかというと、メニュー描画時に、親画面を描画してからメニューを描画します。

public void paint(Graphics graphics) {
 this.canvas.paint(graphics);
}

親画面は Canvas なので、paint を実装しています。ここに、現在の Graphics オブジェクトを
引数として渡します。
repaint だと、現在の Graphics に描画してくれません。
親画面の paint が終われば、あとはフィルターをかけて少々暗くするなり、
メニューを引き立つ処理をしてから、メニューを描画すればよくなります。

メニューを閉じる場合は、引数の Canvas に setCurrent すれば解決です。

Display.setCurrent(canvas);



{a8.net http://books.livedoor.com/item/1980769}
{a8.net http://books.livedoor.com/item/3215952}
posted by FJT at 07:10| DoJa
プロフィール
FJTさんの画像
FJT
使えそうな技術情報を掲載しています。 ぜひ、役立ててください。
プロフィール
リンク集
×

この広告は30日以上新しい記事の更新がないブログに表示されております。