import com.nttdocomo.ui.*; import com.nttdocomo.io.*; class SampleCanvas extends Canvas{ Image img; public SampleCanvas() { try{ MediaImage mediaImg = MediaManager.getImage("resource:///mgr.gif"); mediaImg.use(); img = mediaImg.getImage(); }catch( ConnectionException e) { }catch( UIException e) { } } public void paint(Graphics g){ g.drawImage(img,5,5); } } public class SampleApp extends IApplication{ public void start() { Display.setCurrent(new SampleCanvas()); } }
まず、再描画の旅にGIFをロードしていたのでは、処理が重くなる(ような気がする)ので、局所変数ではなくメンバ変数としてメモリに残しておくことにしましょう。ということで、GIFのロード処理はSampleCanvas
のコンストラクタ内で行います。
MediaImage mediaImg = MediaManager.getImage("resource:///mgr.gif");
mediaImg.use();
img = mediaImg.getImage();
MediaManager.getImage("resource:///mgr.gif");
とすることによりJARファイル内のmgr.gifに関連づけられたMediaImage
が生成されます。JARファイル内の画像を拾ってくるためにはresource:///で始める必要があります。
次にuse()
として、実際にGIFをメモリ内に読み込みます。
次にgetImage()
としてMediaImage
型からImage
型に形式を変えます。なんか無駄なような気がするかもしれませんが、Graphics.drawImage()
で使うためには必ず必要な処理です。
g.drawImage(img,5,5);
いよいよGIFを表示しています。このコードの意味は座標(5,5)にimgに格納されているGIFを描画するという意味です。どうやら画像の伸縮は出来ないようです。
ということで、GIFの使い方を覚えました。10KBという制約があるのであまり派手には使えませんがアクセント程度には必要となってくるでしょう。