最後の更新は次の時刻以降のはず. Time-stamp: "2002/11/09 Sat 18:39"
次の例を参考に, Panel クラスを使って自分の作った/作っている i-アプリに 画像をはろう.
/* Panel への Image の貼り方 2002/10/26 */ import com.nttdocomo.ui.*; /** Panel での Key 入力をうけとる例のクラス */ public class ImageSample1 extends IApplication { /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ Panel p=new Panel(); MediaImage mi0=MediaManager.getImage("resource:///pose0.gif"); MediaImage mi1=MediaManager.getImage("resource:///pose1.gif"); try{ mi0.use(); Image img0=mi0.getImage(); ImageLabel il0=new ImageLabel(img0); p.add(il0); mi1.use(); Image img1=mi1.getImage(); ImageLabel il1=new ImageLabel(img1); p.add(il1); } catch (Exception e){ Label lb=new Label("gif を貼ることに失敗"); p.add(lb); } Display.setCurrent(p); } } /* Local Variables: mode: java End: */gif 画像の例はここ. ブラウザの右クリックからイメージを保存.
pose0.gif | |
pose1.gif | |
surface.gif | |
spiral.gif |
これをc:\iDK\apps\名前\res に入れる.
penguin10% bitmap -size 20x30 & penguin10% xpaint -size 20x30 & penguin10% gimp &のように使って, gif で保存する. 必要なら xv で変換して gif にする.
/* Canvas への Image の貼り方 と Timer を使ったアニメーション 2002/10/31 */ import com.nttdocomo.ui.*; import com.nttdocomo.util.*; // Timer を使うのに必要. /** Panel での Key 入力をうけとる例のクラス */ public class ImageSample2 extends IApplication { /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ CanvasWithImage c=new CanvasWithImage(); Display.setCurrent(c); } } class CanvasWithImage extends Canvas { Image im[]; int t=0; /** コンストラクタ. 最初に1回だけ実行される */ CanvasWithImage(){ im=new Image[2]; MediaImage mi0=MediaManager.getImage("resource:///pose0.gif"); MediaImage mi1=MediaManager.getImage("resource:///pose1.gif"); try{ mi0.use(); im[0]=mi0.getImage(); mi1.use(); im[1]=mi1.getImage(); } catch (Exception e){ //"gif を貼ることに失敗" } } public void paint(Graphics g){ // 特定の座標に, im[0] または im[0] を貼る. g.drawImage(im[0],getWidth()/3,getHeight()/4); // 絵を貼る g.drawImage(im[1],getWidth()*2/3,getHeight()/4); // 絵を貼る } } /* Local Variables: mode: java End: */
/* Canvas への Image の貼り方 と Timer を使ったアニメーション 2002/10/31 */ import com.nttdocomo.ui.*; import com.nttdocomo.util.*; // Timer を使うのに必要. /** Panel での Key 入力をうけとる例のクラス */ public class ImageSample3 extends IApplication { /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ CanvasWithImage c=new CanvasWithImage(); Display.setCurrent(c); Timer ti=new Timer(); ti.setTime(1000); // 1000ミリ秒で発生するタイマー ti.setRepeat(true); // 繰り返し発生するタイマー ti.setListener(c); // このクラス c の timerExpired を使用. ti.start(); // カウントダウン開始. 一時停止は, ti.stop(); } } class CanvasWithImage extends Canvas implements TimerListener { Image im[]; int t=0; /** コンストラクタ. 最初に1回だけ実行される */ CanvasWithImage(){ im=new Image[2]; MediaImage mi0=MediaManager.getImage("resource:///pose0.gif"); MediaImage mi1=MediaManager.getImage("resource:///pose1.gif"); try{ mi0.use(); im[0]=mi0.getImage(); mi1.use(); im[1]=mi1.getImage(); } catch (Exception e){ //"gif を貼ることに失敗" } } public void paint(Graphics g){ // 特定の座標に, im[0] または im[1] を貼る. g.clearRect(0,0,getWidth(),getHeight());// 画面を消す g.drawImage(im[t],getWidth()/3,getHeight()/4); // 絵を貼る } /** Timer が 0 になったとき呼ばれるメソッド implements TimerListner を宣言したらこれが必要 */ public void timerExpired(Timer source){ t= (t+1) % 2; // 時間を進め repaint(); // paint() を再度呼び出す. } } /* Local Variables: mode: java End: */
penguin15% gifsicle --delay=10 --loop pose0.gif pose1.gif pose2.gif > anim.gifなどとすればよい.
/* Panel への Image の貼り方 2002/10/26 */ import com.nttdocomo.ui.*; /** Panel での Key 入力をうけとる例のクラス */ public class AnimSample1 extends IApplication { /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ Panel p=new Panel(); MediaImage mi=MediaManager.getImage("resource:///spiral.gif"); try{ mi.use(); VisualPresenter vp=new VisualPresenter(); vp.setImage(mi); p.add(vp); Display.setCurrent(p); vp.play(); } catch (Exception e){ Label lb=new Label("gif を貼ることに失敗"); p.add(lb); Display.setCurrent(p); } } } /* Local Variables: mode: java End: */