2

私はAndroidの初心者です。写真撮影機能を内蔵したアプリを作ろうとしています。問題は、写真の回転が正しくないことです。横向きモードで写真を撮ると良いのですが、縦向きモードでは写真の回転がおかしくなります。私の質問は、写真がランドスケープ/ポートレートモードで撮影されているかどうかを確認できますか?LogCatをチェックすると、「CameraEngine」という名前のタグが表示され、回転:0または90と表示されているためです。このようなカメラ情報をコードで取得できれば、すばらしいでしょう。

4

3 に答える 3

5

画像の幅と高さを比較できます。

Bitmap bmp = your photo;

if(bmp.getWidth() > bmp.getHeight())
{
   // landscape
}else
{
   // portrait
}
于 2012-07-16T12:14:11.247 に答える
0

これはあなたが必要とすることをするはずです。向きを角度 (0/90/180/270) として返します。

private int getOrientation(Uri aUri, ContentResolver aRslv) {
    Cursor _cursor = aRslv.query(aUri,
            new String[] { MediaStore.Images.ImageColumns.ORIENTATION },
            null, null, null);

    if (_cursor != null) {
        try {

            if (_cursor.moveToFirst()) {
                return _cursor.getInt(0);
            } else {
                return -1;
            }
        } finally {
            _cursor.close();
        }
    } else {
        return 0;
    }
}
于 2012-07-16T12:17:26.057 に答える