スクラッチパッドを利用する
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カードの利用とか個別機能クラスも実装して、簡易フレームワークみたいな感じでリリースしようかな。