ダブルバッファリング/ 乱数 / gif png イメージの読み込み

[目次|前回|次回|携帯Javaのページ|ローカルドキュメント]
Time-stamp: "2004/12/02 Thu 22:13 hig"

ダブルバッファリング

アニメーションの画面のちらつきを防ぐには, 結論としては, paint メソッドで, iアプリの場合
void paint(Graphics g){
  g.lock();
  // g に対して fillRect などを実行
  g.unlock(true);		
}
Vアプリ/EZアプリの場合
void paint(Graphics g){
  Image offimg=Image.createImage(getWidth(),getHeight());
  Graphics offgr=offimg.getGraphics();
  // offgr に対して fillRect などを実行
  g.drawImage(offimg,0,0,g.LEFT|g.TOP);
}
とすればいいのです. なぜでしょう? このようにしたときと, しなかったときを比べてみましょう. サンプルRandomSample.java参照.

乱数

import java.util.Random;
して Random クラスを使います. サンプルRandomSample.java参照.

終了

強制終了でない終了の書き方は, iアプリと Vアプリ/EZアプリでちょっと違います. void terminate(void)void destroyApp(boolean) を, キー入力に応じて呼び出せばいいのです. ただし, MIDPの場合, (まだ説明していない)例外処理が必要です. サンプルRandomSample.java参照.

イメージの読み込み

画像(ビットマップ)ファイルとして, DoJa では GIF/JPEG 形式(古い端末は GIFのみ), MIDP では PNG 形式を用います.

イメージを Canvas に貼ろう

次の例ImageSample.javaを参考に, Canvas に下に挙げてある GIF/PNG 画像を貼りましょう.

画像ファイルは以下にあります. まず,下の GIF/PNG 画像をファイルとして保存しましょう. ブラウザの右クリックからイメージを保存を選びます.

ファイル名gifpng
pose0.gif
pose1.gif
surface.gif

方法1: アプリの一部としてイメージをダウンロードさせる. 上の画像ファイルをC:\iDKDoJa3.5\apps\[プロジェクト名]\res あるいは C:\WTK104\apps\[プロジェクト名]\res にいれます.

方法2: アプリのダウンロード後に, イメージを http でダウンロードさせる. 上の画像ファイルをこれを Web サーバに置く. ADF 設定で, UseNetwork:http とする.

GIF/PNG画像を作ろう

自分で GIF/PNG 画像をつくるには, たとえば, Pixia や ペイントなどのペイント(画像)ソフトを使いましょう. あるいは, Linux のビットマップエディタを

penguin10% bitmap -size 20x30 &
penguin10% xpaint -8 -size 20x30 &
penguin10% gimp &
のように使って, GIF/PNG で保存すればいいのです.

必要なら Linux の xv や pixia で変換して GIF/PNG/JPEG にしましょう.

ただし, 画像ファイルは端末に適切な(小さめの)サイズにして, 色の個数は 28色であるようにします. -8 はそのためのオプションです.

課題

時間とともに, 多少ランダムに, キー入力に反応して, 画像が移動/変化するようなアプリを作ろう 時間があれば, 自分で作った画像ファイルを使おう.