2012年10月20日
メニューの作り方
今回は、メニューの作り方を解説します。
ソフトキーを押したときに、画面左下、または右下に項目選択できるインターフェースを実装します。
いろいろな実装方法がありますが、今回の方法がいちばん汎用性がありそうだったので、
考え方だけ載せておきます。
メニュークラスは Graphics を使用して描きますので、Canvas をベースにします。
コンストラクタでは、メニューを開いたときのソフトキーの設定を行ないます。
引数に、親画面の Canvas を指定します。これは後で役に立ってきます。
今回は、右ソフトキーに「閉」を設定します。
表示時にはメニューに対して、setCurrent を実行するわけですが、
そうすると背景の画面が消えてしまいます。
Canvas は透過できないようなので、ここをフォローする必要があります。
どうするかというと、メニュー描画時に、親画面を描画してからメニューを描画します。
親画面は Canvas なので、paint を実装しています。ここに、現在の Graphics オブジェクトを
引数として渡します。
repaint だと、現在の Graphics に描画してくれません。
親画面の paint が終われば、あとはフィルターをかけて少々暗くするなり、
メニューを引き立つ処理をしてから、メニューを描画すればよくなります。
メニューを閉じる場合は、引数の Canvas に setCurrent すれば解決です。
{a8.net http://books.livedoor.com/item/1980769}
{a8.net http://books.livedoor.com/item/3215952}
ソフトキーを押したときに、画面左下、または右下に項目選択できるインターフェースを実装します。
いろいろな実装方法がありますが、今回の方法がいちばん汎用性がありそうだったので、
考え方だけ載せておきます。
メニュークラスは 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}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image