画像をデータベースに保存する為にbyte型に変換する必要があったので、調べてみた。
ソースコードはtry-catchを省略しているので、適宜入れるように。

//Bitmap to Bytes
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();

byteに変換すれば、データベースにも保存できる。

//Bytes to Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

戻すのは簡単。
大きい画像を取り出す場合は、optionを使って色々弄る必要があるかも。

//Bitmap to File
FileOutputStream fos = openFileOutput("test.png", Context.MODE_PRIVATE);
bitmap.compress(CompressFormat.PNG, 100, baos);
fos.flush();
fos.close();

ファイルに保存する場合はFileOutputStreamを使う。
読み込みに関してはBitmapFactory.decodeFileを使えば読み出せる。
書き込み時にファイルのパスを省略しているが、読み出す時はフルパスが必要っぽい。

カテゴリ/タグ:私の記憶領域 /  , ,    
コメント (0)

中々、完成版を作る事ができない。マオです。


結局、1月では完成させられなかった、Androidなアプリです。
アプリというか壁紙なんだけどね。
一応、アプリ名は「CorkB LiveWallpaper」としてみた、コルクボードを省略した感じ。
簡単に説明すると、ホーム画面の壁紙に付箋紙を付けちゃおうという感じ。
専用のアプリの画面で貼り付けるメモとか、ウィジェットタイプの付箋アプリとかは見た事あるんだけど、ライブ壁紙を使ったヤツって見た事ないんだよね。
で、面白そうだから勉強ついでに作っている途中だったりする。
根幹は出来上がってるから、公開しても良い気がするんだけど、このラベルを編集するフォームがダメ過ぎる。
こういうの、昔から苦手なんだよねー。
別の人のデザインに機能を組み込んだり、見た目に関わらない根元の部分しか作ってこなかった弊害だな。
綺麗なデザインとか小人さんが勝手に作ってくれないかなぁ(笑)

しかし、これは需要があるのだろうか?

カテゴリ/タグ:月面開発室 /  , ,    
コメント (0)

Android開発をする為にEclipseを使うわけですが、リソースファイルをいじる時にEclipseがフリーズしてしまう現象が多発していた。
リファクタリングで名前変更する時も大抵固まってたし、酷い時にはコード補完機能で固まったりしてたんだよね。
で、そろそろ耐えられなくなったので、Google先生に頼んだ所、以下のサイトが引っかかってくれました。

センスゼロからのウェブデザイン:Android開発中にEclipseがすごい勢いでフリーズする

サイト名に近親感を得られたわけですが(笑)
なるほど、今まではメモリが制限されていたわけか。
これでリファクタリング作業は早くなると思われる。

digital matter:Eclipse 3.6(Helios)でAndroid SDKのコード補完が遅い問題

で、こっちがコード補完の問題の解決。
解凍後のソースコードでかいな(笑)

これら修正をすれば、Eclipseの力が解放されるのだな、ふふり。

カテゴリ/タグ:私の記憶領域 /  , ,    
コメント (0)

頭の中で考えるのは大変ね。マオです。

さて、バージョン管理を導入したお陰で、ガンガンと開発が進んでいるわけですが、ガンガン進むお陰で妙な色気を出して変わった物に手を出しちゃって困る。
スレッド処理に手を出す事にした。
明確な意図を持ってスレッド処理に手を出すのはこれが初めてだと思う。
ちなみにスレッド処理とは並行処理の事です、詳しい事はググれ。
描画処理とデータを読み込む処理を平行させたかったんだよね。
このプログラムの設計書って私の脳内とコードにしか存在しなくて、企業がやるような紙媒体とか電子媒体のグラフィカルな設計書が存在しない(笑)
全て脳内で処理してるもんだから、複雑怪奇になると大変なんだよね。
何度ソースの大改造をやったやら・・・。
今の所はうまく動いているけど、いつエラーで落ちるか心配だわ。

今回のアプリ(前回は自分用のカレンダー)に関しては、Androidのパフォーマンスを低下させない為のお約束をかなり忠実に守ってるので、いい感じに動いてます。
ってか、動くコード書いた後に綺麗に直してるんだけど、全然速度が変わるのな。
実機テストなんて初期のコードはガクガクだったのに、修正後はヌルヌルですよ・・・気持ち悪い(笑)
まだまだ、修正できそうな所は一杯あるのでガンガン直しつつ、早く公開できるように祈ろう。

カテゴリ/タグ:月面開発室 /  ,    
コメント (0)

頑張ってコード修正をしている。マオです。

相変わらずユーザインターフェイスに苦労している開発ですが、もう一個ほど困ってた事があったんだ。
何かというと「コードの大幅な改良しての実験が出来ない」というもの。
もし実験して最悪な結果を出したら戻すようにしたい所だけど、その最悪の結果ってすぐ発覚するとは限らないんだよね。
例えば機能をいくつも追加して、初めて気付くとかあったりする。
で、大幅改良をしたいけど出来なかったんだよね。
さすがに手動によるコードコピーも面倒なんで、バージョン管理システムを入れる事にした。
有名所はCVSで、ここ数年でSubversionって管理システムがシェアを占めてきたけど、個人でやってるだけなんでこの二つは規模が少し大きすぎるんだよね。
色々と鯖を建てなきゃいけないみたいだし、もう少し単純な感じの管理システムを探してみた。
管理システムの一つにGitというのがあって、これだとEclipse用のプラグインにEGitというのがあって、これを突っ込むだけでバージョン管理が簡単に出来ちゃうみたいなのだ。
ってな訳でサクっといれた。
使い方は簡単で、今ではガンガンコード修正やっちゃってます。

結果は使用メモリが半分以下になったり、大幅なメニュー改変しちゃったりと大活躍。
後はこの修正が後に響かない事を祈るだけ><

カテゴリ/タグ:月面開発室 /  , ,    
コメント (0)