我是Android的新手。我正在尝试使用内部的照片捕捉功能制作应用程序。问题是照片旋转不对。如果我以横向模式拍摄照片会很好,但在纵向模式下照片旋转会出错。我的问题是:我可以检查照片是否以横向/纵向模式拍摄?因为当我检查LogCat时,我可以看到名为“CameraEngine”的标签,它表示旋转:0或90.如果我可以通过代码获得那种相机信息,那将会很酷。
答案 0 :(得分:5)
您可以比较图像宽度和高度:
Bitmap bmp = your photo;
if(bmp.getWidth() > bmp.getHeight())
{
// landscape
}else
{
// portrait
}
答案 1 :(得分:1)
如果照片是专门使用PhoneGape 2.9及更高版本拍摄的,那么您无法检查Android。
因为您必须从拍摄照片中存储的 EXIF属性中提取此信息,而且Android甚至不会写出此属性的方向。
您可以参考此回复此问题以获取更多信息: canvas drawImage() with photos taken on iphone in landscape are rotated
答案 2 :(得分: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;
}
}