2012/08/20

Android でカメラかギャラリーから画像を読み込んでトリミングして表示するサンプル

  • Android OS 2.3.6
  • Galaxy S
での動作。
動かない端末あるんだろうなぁとか思いつつもとりあえず動いたので公開。
トリミングの方法なんだけど、デフォルトのトリミングアプリがあるらしく、それを使ってみた。

ギャラリーから Picasa の画像選んだらなんか落ちそうだけど検証してない。
不具合あったら教えて下さい。


AndroidManifest.xml

android:configChanges="keyboardHidden|orientation"がキモ?

※2013/01/29 22:23 追記
上記の android:configChanges だと端末及び、API level によって Activity が再生成されるようです。以下が修正版です。


※2013/01/30 21:41 追記
そもそも間違っていました・・・・。
http://slumbers99.blogspot.jp/2013/01/android.html に追記という形で書きました。

layout/activity_main.xml

レイアウトXMLとくにこれと言ってなし。


menu/activity_main.xml

メニューの XML とくにこれと言ってなし。


ExternalAppOpener.java

外部アプリ(カメラ、ギャラリー、クロップ)を開く。
ContentResolver を使ってUriを保存。それらを参照する。


MainActivity.java

Activity。onActivityResult() でいろいろゴニョゴニョ。
_savePictureToExternalStrage() でわざわざ別に書きだしたのは、
このあとフィルターかけたりするため。
カメラで撮った画像だったらいいけど、ギャラリーから選択したものに、上書き保存しちゃったらアレだと思ったのです・・・・。