/* iアプリ, MIDP の Canvas への Image の貼り方 Time-stamp: "2004/12/02 Thu 22:14 hig" Saburo Higuchi 2003 http://www.math.ryukoku.ac.jp/~hig/ プログラム解説等 http://sparrow.math.ryukoku.ac.jp/~hig/course/juniors_2004/04/ */ #if DOJA import com.nttdocomo.ui.*; #elif MIDP import javax.microedition.midlet.*; import javax.microedition.lcdui.*; #endif #if DOJA #elif MIDP #else // DoJa/MIDP Builder を使われる方へ: // まず, プログラムの先頭で, #define DOJA // などと定義する必要があります. // 以下の define 文は, #if - #endif の中に書かれていますので, // DoJa/MIDP Builder のプリプロセッサでは処理できません. // そこで, #if - #endif はやめて, // いらない方をJava の意味でコメント文にしてください. #endif #if DOJA #define MYALIGN +0 #define MYAP IApplication #define MYSTART start #define MYBLACK Graphics.getColorOfName(Graphics.BLACK) #define MYWHITE Graphics.getColorOfName(Graphics.WHITE) #define MYBLUE Graphics.getColorOfName(Graphics.BLUE) #define MYRED Graphics.getColorOfName(Graphics.RED) #define MYGREEN Graphics.getColorOfName(Graphics.GREEN) #define MYYELLOW Graphics.getColorOfName(Graphics.YELLOW) #define MYMAGENTA Graphics.getColorOfName(Graphics.MAROON) #define MYCYAN Graphics.getColorOfName(Graphics.AQUA) #define MYDIALOG Dialog #define MYLABEL Label #define MYADD add #define MYTEXT Text #elif MIDP #define MYALIGN ,Graphics.LEFT|Graphics.BOTTOM #define MYAP MIDlet #define MYSTART startApp #define MYBLACK 0 #define MYWHITE ( (255<<16) + (255<<8) + (255)) #define MYBLUE ( (0<<16) + (0<<8) + (255)) #define MYRED ( (255<<16) + (0<<8) + (0)) #define MYGREEN ( (0<<16) + (255<<8) + (0)) #define MYYELLOW ( (255<<16) + (255<<8) + (0)) #define MYMAGENTA ( (255<<16) + (0<<8) + (255)) #define MYCYAN ( (0<<16) + (255<<8) + (255)) #define MYDIALOG Alert #define MYLABEL StringItem #define MYADD append #define MYTEXT String #endif /** Panel での Key 入力をうけとる例のクラス */ public class ImageSample extends MYAP { /** 起動するときに呼ばれる メソッド. 必須. */ #if DOJA public void start(){ ImageCanvas cc=new ImageCanvas(this); Display.setCurrent(cc); } #elif MIDP public void startApp(){ ImageCanvas cc = new ImageCanvas(this); Display.getDisplay(this).setCurrent(cc); } public void pauseApp(){} public void destroyApp(boolean unconditional){} #endif } class ImageCanvas extends Canvas { ImageSample parent; private Image im[]; String status; /** コンストラクタ. 最初に1回だけ実行される */ ImageCanvas(ImageSample m){ this.parent=m; x0=getWidth()/3; y0=getHeight()/4; x1=getWidth()*2/3; y1=getHeight()/4; im=new Image[2]; #if DOJA MediaImage mi0=MediaManager.getImage("resource:///pose0.gif"); MediaImage mi1=MediaManager.getImage("resource:///pose1.gif"); // アプリのダウンロード後に Web サーバからイメージをダウンロード // ADF 設定で UseNetwork: http // MediaImage mi0=MediaManager.getImage("http://somehost/somepath/pose0.gif"); // MediaImage mi1=MediaManager.getImage("http://somehost/somepath/pose1.gif"); #elif MIDP #endif try{ #if DOJA mi0.use(); im[0]=mi0.getImage(); mi1.use(); im[1]=mi1.getImage(); #elif MIDP im[0]=Image.createImage("/pose0.png"); im[1]=Image.createImage("/pose1.png"); #endif status="gif 読み込み成功"; } catch (Exception e){ //"gif を読み込むことに失敗" status="gif 読み込み失敗"; } } public void paint(Graphics g){ // 特定の座標に, im[0] または im[0] を貼る. g.setColor(MYWHITE); g.fillRect(0,0,getWidth(),getHeight()); // 画面を消す g.drawImage(im[0],x0,y0 MYALIGN); // 絵を貼る g.drawImage(im[1],x1,y1 MYALIGN); // 絵を貼る g.drawString(status,0,getHeight()/2 MYALIGN); } } /* Local Variables: mode: java End: */