我正在开发一个应用程序,在这个应用程序中,我向用户提供了一个便利,用户可以使用他的移动相机拍照,然后我将图像显示在ImageView中。
现在的问题是,如果我在纵向模式或横向模式下捕获图像,它总是在imageview中将图像设置为横向模式,但我希望仅将图像设置为纵向模式。请帮我解决这个问题。
任何帮助都是可观的…
谢谢你

最佳答案

Matrix mat = new Matrix();

ExifInterface exif = new ExifInterface(yourimagepath);
String orientstring = exif.getAttribute(ExifInterface.TAG_ORIENTATION);
int orientation = orientstring != null ? Integer.parseInt(orientstring) : ExifInterface.ORIENTATION_NORMAL;
int rotateangle = 0;
if(orientation == ExifInterface.ORIENTATION_ROTATE_90)
            rotateangle = 90;
if(orientation == ExifInterface.ORIENTATION_ROTATE_180)
            rotateangle = 180;
if(orientation == ExifInterface.ORIENTATION_ROTATE_270)
            rotateangle = 270;

mat.setRotate(rotateangle, (float) bmpPic.getWidth() / 2, (float) bmpPic.getHeight() / 2);

File f = new File(yourimagepath);
Bitmap bmpPic = BitmapFactory.decodeStream(new FileInputStream(f), null, null);
Bitmap bmpPic1 = Bitmap.createBitmap(bmpPic, 0, 0, bmpPic.getWidth(), bmpPic.getHeight(), mat, true);

09-30 23:27