kz.tmmr
unread,Aug 2, 2014, 8:18:05 AM8/2/14Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to 日本アンドロイドの会
お世話になっております。
自作アプリからカメラアプリを起動して、その撮影画像を自作アプリ上で表示させたいと思っています。
単純に撮影画像のBitmapを表示させるだけだと、撮影時の端末の向きによっては撮影画像が90度傾いて表示されてしまうので、
撮影画像の向きを取得して、それに応じてBitmapを回転させたうえで表示~という形を考えています。
色々参考にして、下のようにして撮影画像の向き取得を試してみたのですが、
どのような端末向きで撮影しても、何故か常に0が表示されてきてしまいます。
↓↓↓↓↓
public class MainActivity extends Activity {
// カメラ撮影画像の格納先URI
private Uri cameraImageUri;
// カメラアプリ連携
private void startCameraActivity() {
cameraImageUri = makeCameraImageUri();
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraImageUri);
startActivityForResult(intent, 123);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if(requestCode == 123) {
if(resultCode == RESULT_OK) {
// カメラ撮影画像の取得
Bitmap bitmap =
MediaStore.Images.Media.getBitmap(getContentResolver(),
cameraImageUri);
// カメラ撮影画像の向きの取得①
Cursor cur = MediaStore.Images.Media.query(
getContentResolver(),
cameraImageUri,
new String[]{ MediaStore.Images.Media.ORIENTATION }, null, null);
if(cur != null && cur.moveToFirst()) {
Log.i(TAG, "degrees1 = " +
cur.getFloat(cur.getColumnIndex(MediaStore.Images.Media.ORIENTATION)));
← 0が表示されます
}
// カメラ撮影画像の向きの取得②
ExifInterface exif = new ExifInterface(cameraImageUri.getPath());
Log.i(TAG, "degrees2 = " +
exif.getAttribute(ExifInterface.TAG_ORIENTATION)); ← 0が表示されます
}
}
}
:
}
↑↑↑↑↑
(QuickPicなど)有名な画像ビューアとかで、↑で撮影した画像を見ると、
画像が正しい向きで表示されることはもちろん、
詳細情報とかで画像の角度が表示されてきているので、
自作アプリのカメラ撮影の仕組み自体は問題なく、
何かしら画像の向きの取得方法があるんだろうなー、とは思っているのですが、
そこに至っておりません。。。。
恐れ入りますが、ご教授いただけると助かります。mm