经过测试,国产手机拍照无问题,国外手机拍照后自动选装90度了看图:主要有Google手机和三星手机都会有这个问题

解决办法也很简单说下思路:

首先获取图片被旋转的角度然后通过matrix.postRotate设置角度即可代码如下:

package com.wyze.mercury.common.utils;import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.media.ExifInterface;
import android.util.Log;import java.io.IOException;/*** @author : xiayiye5* @date : 2021/4/28 17:39*/
public class CommonTools {private static final CommonTools LOCATION_TOOLS = new CommonTools();private CommonTools() {}public static CommonTools getInstance() {return LOCATION_TOOLS;}/*** 读取照片exif信息中的旋转角度** @param path 照片路径* @return 角度*/public int readPictureDegree(String path) {int degree = 0;try {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;default:break;}} catch (IOException e) {Log.e("exception msg", Log.getStackTraceString(e));}return degree;}public Bitmap toReturn(Bitmap img, String path) {Matrix matrix = new Matrix();/*翻转90度*/matrix.postRotate(+readPictureDegree(path));int width = img.getWidth();int height = img.getHeight();img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);return img;}
}

调用方法:

private fun setUploadImg(rlPicture: ImageView) {imgPath.let {val screenWidth = WpkCommonUtil.getScreenWidth();val decodeFile = BitmapFactory.decodeFile(imgPath)val width = decodeFile.widthval size = width / screenWidthval newOpts = BitmapFactory.Options()newOpts.inJustDecodeBounds = false//设置缩放比例newOpts.inSampleSize = size * 2WpkLogUtil.e("打印缩放比例", "$size =")//重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了val bitmap = BitmapFactory.decodeFile(imgPath, newOpts);rlPicture.setImageBitmap(CommonTools.getInstance().toReturn(bitmap, it))}

看下前后效果图对比:

设置角度之前

设置角度之后

非常感谢原博主:原博主链接

Android开发之拍照后图片旋转的问题相关推荐

  1. android 5.1拍照后图片镜像处理

    这是mtk6735平台的,可能每个平台位置不太一样,但改法基本相同 status_t CamAdapter:: takePicture() 这个函数里面添加 //后摄拍照图片镜像 if(strcmp( ...

  2. android 4.4拍照后图片镜像处理

    此处原来为0 改为1

  3. android上传图片被旋转,解决android有的手机拍照后上传图片被旋转的问题

    需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的 ...

  4. android 三星手机拍照旋转90度,解决三星调用系统相机拍照显示图片旋转90度横着的问题...

    /** * 调用系统相机拍照工具类 * @author yao * */ public class CaremaUtil { private static String strImgPath = &q ...

  5. 解决android有的手机拍照后上传图片被旋转的问题

    需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的 ...

  6. Android添加拍照功能,Android开发实现拍照功能的方法实例解析

    本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Ca ...

  7. Android自定义相机拍照、图片裁剪的实现

    原文:Android自定义相机拍照.图片裁剪的实现 最近项目里面又要加一个拍照搜题的功能,也就是用户对着不会做的题目拍一张照片,将照片的文字使用ocr识别出来,再调用题库搜索接口搜索出来展示给用户,类 ...

  8. 解决三星调用系统相机拍照显示图片旋转90度横着的问题

    最近项目有个功能是调用系统相机拍照上传图片的功能,发现别的手机都没有ok,只有三星的显示图片很明显是旋转了90度,横着的.后来百度了解是三星对android相机单独做了优化(android碎片化,各种 ...

  9. android实现相机功能,Android开发实现拍照功能的方法实例解析

    本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Ca ...

最新文章

  1. windows 基础及基本软件测试环境搭建
  2. 河中跳房子(noiopenjudge,noip2015)
  3. 在网页中使用react
  4. Java基本语法(12)--分支结构if-else
  5. go语言os.exit(1)_在Golang中各种永远阻塞的姿势
  6. 云小课 | 不了解EIP带宽计费规则?看这里!
  7. 低格硬盘用什么软件_迟来的评测:用了三年后的固态硬盘会变成什么样呢?
  8. Oracle中 char varchar varchar2的区别
  9. 2017-2018-1 20155320 实验三——实时系统
  10. 警告 1 warning C4996: ‘scanf‘: This function or variable may be unsafe.
  11. php读取oracle,php读取oracle中数据库文件
  12. JVM常见的七种垃圾收集器的简单比较
  13. JSON值的类型:数字,字符串,逻辑值,数组,对象,null
  14. 中兴v5max android5.1,中兴V5Max
  15. matlab | imcrop手动截图演示
  16. Could not load requested class
  17. Python实现借助聚合数据API接口生成某一年的节假日对照表
  18. Java学习-java中的与或非
  19. 全球 500 亿条数据被 Elasticsearch 勒索者删除
  20. android立体3D效果_Android实现八大行星绕太阳3D旋转效果

热门文章

  1. 【第二期】那些设计漂亮、有创意的电路板!
  2. struts2 jsp跳转action 404_Struts2 学习笔记(三)
  3. c语言绘制路面图形代码,道路纵断面绘图程序的开发.pdf
  4. python编程常见的错误_Python编程时常见的3个错误
  5. XSS介绍_靶场DVWA,pikachu;其他XSS平台
  6. 腾讯地图api_数据库API接口的类型及应用场景
  7. python测试开发django-44.xadmin上传图片和文件
  8. 菜鸟弹性调度系统的架构设计——阅读心得
  9. [RN] React Native 实现图片预览
  10. 2018-2019-2 20175224 实验五《网络编程与安全》实验报告