Android拍照,照片会自己旋转

最近写Android,调用相机接口拍照,但是返回来的结果老是会旋转,而且在不同的手机上旋转角度还不一样。

解决办法

可以在拍完照以后,获取图片的旋转信息,然后往相反方向旋转

获取旋转角度代码如下

// 从指定路径path下读取图片,并获取其EXIF信息
ExifInterface exifInterface = new ExifInterface(path);
// 获取图片的旋转信息
int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,
        ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
     
	case ExifInterface.ORIENTATION_ROTATE_90:
	    degree = 90;
	    break;
	case ExifInterface.ORIENTATION_ROTATE_180:
	    degree = 180;
	    break;
	case ExifInterface.ORIENTATION_ROTATE_270:
	    degree = 270;
	    break;
}

将图像转回去

// picture是ImageView
picture.setPivotX(picture.getWidth()/2);
picture.setPivotY(picture.getHeight()/2);
// 设置旋转角度
picture.setRotation(degree);

你可能感兴趣的:(技术类错误解决问题,android)