android应用里使用相机图片时必须要考虑的一个问题就是图片朝向,只有判断对朝向才能调整图片从而更好的展现。本文将介绍一种通过ExifInterface判断图片朝向的方法!
上代码:
public void setImg(String imgPath, ImageView imgView) {File file = new File(imgPath);if (file.exists() && file.canRead()) {// -------1.图片缩放--------// 手机屏幕信息DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);int dw = metric.widthPixels; // 屏幕宽int dh = metric.heightPixels; // 屏幕高// 加载图像,只是为了获取尺寸BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true; // 设置之后可以获取尺寸信息Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);// 计算水平和垂直缩放系数int heightRatio = (int) Math.ceil(options.outHeight / (float) dh);int widthRatio = (int) Math.ceil(options.outWidth / (float) dw);// 判断哪个大if (heightRatio > 1 && widthRatio > 1) {if (heightRatio > widthRatio) {options.inSampleSize = heightRatio;} else {options.inSampleSize = widthRatio;}}// 图片缩放options.inJustDecodeBounds = false;bitmap = BitmapFactory.decodeFile(imgPath, options);// -------2.判断图片朝向--------try {ExifInterface exif = new ExifInterface(imgPath);int degree = 0; // 图片旋转角度if (exif != null) {int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);if (orientation != -1) {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;}}}if (degree != 0) { // 图片需要旋转int width = bitmap.getWidth();int height = bitmap.getHeight();Matrix matrix = new Matrix();matrix.preRotate(degree);Bitmap mRotateBitmap = Bitmap.createBitmap(bitmap, 0, 0,width, height, matrix, true);imgView.setImageBitmap(mRotateBitmap);} else {imgView.setImageBitmap(bitmap);}} catch (IOException e) {}}}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机android判断相机图片朝向的简单方法
后端开发2023-05-31
Android实现简单图片压缩的方法
后端开发2022-06-06
android中知道图片name时获取图片的简单方法
后端开发2022-06-06
Android简单判断某个APK是否已经安装的方法
后端开发2022-06-06
android中图片翻页效果简单的实现方法
后端开发2022-06-06
Android判断屏幕是横屏或是竖屏的简单实现方法
后端开发2022-06-06
Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)
后端开发2022-06-06
Android中简单调用图片、视频、音频、录音和拍照的方法
后端开发2022-06-06
咦!没有更多了?去看看其它编程学习网 内容吧