场景描述:使用RecyclerView+GridLayoutManager实现九宫格布局时,添加进来的图片出现方向不对的问题,修复后效果
解决方案,通过判断相机传感器方向,重置方向
/**
* @author yukaida
* @param absolutePath 照片的绝对路径
* @return 重新调整方向之后的bitmap图片
*/
public static Bitmap orientation(String absolutePath){
Bitmap bitmap_or=BitmapFactory.decodeFile(absolutePath);
try {
ExifInterface exif = new ExifInterface(absolutePath);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
Log.d("EXIF", "Exif: " + orientation);
Matrix matrix = new Matrix();
if (orientation == 6) {
matrix.postRotate(90);
}
else if (orientation == 3) {
matrix.postRotate(180);
}
else if (orientation == 8) {
matrix.postRotate(270);
}
bitmap_or= Bitmap.createBitmap(bitmap_or, 0, 0, bitmap_or.getWidth(), bitmap_or.getHeight(), matrix, true); // rotating bitmap
return bitmap_or;
}
catch (Exception e) {
}
return null;
}