android - 把图片按照重力来旋转(拍时什么方向就变成什么方向)
访问量: 2088
我们遇到个问题: 拍照功能,在 三星S3 5.0的机器上的照片,本来是机器竖着的时候拍的,
结果保存的时候变成了横屏的.
所以,需要下列代码进行调整:
/** * 针对部分机型,拍的照片是横屏的. 需要给他竖过来 */ private Bitmap ajustOrientation(Bitmap bm, String imgpath) { int rotate = 0; ExifInterface exif = null; try { exif = new ExifInterface(imgpath); } catch (IOException e) { e.printStackTrace(); exif = null; } if (exif != null) { // 读取图片中相机方向信息 int ori = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); // 计算旋转角度 switch (ori) { case ExifInterface.ORIENTATION_ROTATE_90: rotate = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: rotate = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: rotate = 270; break; default: rotate = 0; break; } } if (rotate != 0) { // 旋转图片 Matrix m = new Matrix(); m.postRotate(rotate); bm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), m, true); } return bm; }