--/--/-- (--) スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |


2011/10/14 (Fri) Androidプログラミング カメラアプリ制作中(3)

20111014-101225.jpg

 先日のISO感度設定が出来ないという問題点はこちらのサイトのおかげで無事解決。読み込むときの引数(キー)が「"iso-values"」(端末がサポートしているISO感度のセット)になっていて、値をセットするときの引数も同じだと勘違いしてたけど「"iso"」になるらしい。下の写真の左上がISO100、その右がISO3200で撮影したもの。ノイズの乗り具合を見るとちゃんと反映されてる様子。

 そして昨日はカメラアプリに統合するフォトビューアソフトを作った。といっても、現時点ではカメラが写真を保存するフォルダの画像を読み込みGridViewにサムネイル表示して、サムネイルをタッチするとIntentのExtraで写真パスを送り、受け取った画像表示用ActivityのImageViewへ全画面表示されるというだけの仕様。工夫した点は縦長や横長の写真であってもサムネイルを正方形表示させるところ。サムネイルを作る独自アダプタクラスの中で画像の縦と横の長さを見て、長い方を短い方にあわせてトリミングする。詳しいコードは「続きを読む」から。

【課題】ただこのGridViewで表示させる方法は、フォルダ内の画像が多くなると読み込み結果がおかしくなるので改善の余地あり。500枚近く保存してるCamera360用の画像フォルダで試したところ20枚近くを読み込んだ時点で500枚分のGridViewが表示されて、その30枚がループして表示されてしまった。現状では全てのサムネイルを作成してから表示させるため、そのサムネイルを保存する一時保存領域がパンクしてしまった感じ。解決策として、読み込みをサービスに投げる方法を模索中。

//生成したサムネイル(thumbnail = Bitmap型)を正方形に切り取る

if (thumbnail.getWidth() > thumbnail.getHeight()) {
int trim_size = (thumbnail.getWidth() - thumbnail.getHeight());
thumbnail = Bitmap.createBitmap(thumbnail, trim_size, 0, thumbnail
.getHeight(), thumbnail.getHeight());
} else {
int trim_size = (thumbnail.getHeight() - thumbnail.getWidth());
thumbnail = Bitmap.createBitmap(thumbnail, 0, trim_size, thumbnail
.getWidth(), thumbnail.getWidth());
}

プログラミング | trackback(0) | comment(0) |


<<壹錢喰太郎 | TOP | 嵐山に華>>

comment











管理人のみ閲覧OK


trackback

trackback_url
http://kononushi.blog46.fc2.com/tb.php/625-8ea6e935

| TOP |

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。