プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

スクラッチパッドを利用する

HTTP通信と同じく、結構使いそうだけど作るのが面倒なので、スクラッチパッドを利用するためのクラスも作成しました。主なメソッドは下記3つです。(利用する前に、ADFのSPsizeと、コード22行目のSPSIZEを設定しておいてください)

Spad.write(byte[] 書き込むデータ, 対象領域, オフセット);
Spad.read(対象領域, オフセット, 読み込む長さ);
Spad.clear(初期化する領域);

HTTP通信クラスとあわせるとこんな感じで使えます。

//画像ファイルを取得して保存
byte[] b = Http.requestHttp("img.gif")
Spad.write(b, 0, 0);

テキストや画像として利用する場合も簡単です。

//保存した画像ファイルを読み込み
byte[] b = Spad.read(0, 0, len);

//画像を表示
try { 
  MediaImage m=MediaManager.getImage(b);
  m.use();
  Image image=m.getImage();		        
  U.drawImage(image, 0, 0);
} catch (Exception e) {}			

iアプリは容量が限られているため、画像などのリソースはJarファイルにまとめて、サーバから一括取得ということもよくやると思います。ということで、そんな用途に使えるメソッドもつけてみました。

  //Jarファイルを取得して保存
  byte[] b = Http.requestHttp("resource.jar");
  Spad.write(b, 0, 0);

  //保存したJarファイルに含まれるファイルを読み込み
  InputStream in = Spad.readJar(0, 0, len, "img.gif");

ここではInputStreamになっていますが、Spad.read()と同様、MediaManager.getImage()にそのまま渡して画像化できます。


ちなみに、Jarファイルは下記コマンドで。

jar cMf resource.jar -C "path to target dir" .


コードはここからどうぞ


色々やってるうちにノッてきたので、ビルドファイルの圧縮とか、SDカードの利用とか個別機能クラスも実装して、簡易フレームワークみたいな感じでリリースしようかな。