由于前面的博文中忽略了点内容,所以在这里补上,下面内容就是解决拍照或者选择图片显示的时候图片旋转了90度或者其他度数问题,以便照片可以正面显示:具体如下:

首先直接看上面博文下的拍完照或者选完图后处理部分:

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. switch (resultCode) {
  4. case 1:
  5. if (data != null) {
  6. // 取得返回的Uri,基本上选择照片的时候返回的是以Uri形式,但是在拍照中有得机子呢Uri是空的,所以要特别注意
  7. Uri mImageCaptureUri = data.getData();
  8. // 返回的Uri不为空时,那么图片信息数据都会在Uri中获得。如果为空,那么我们就进行下面的方式获取
  9. if (mImageCaptureUri != null) {
  10. setImage(mImageCaptureUri);// 根据Uri处理并显示图片
  11. }
  12. }
  13. break;
  14. default:
  15. break;
  16. }
  17. }

第二:处理90度问题并显示:

  1. private void setImage(Uri mImageCaptureUri) {
  2. // 不管是拍照还是选择图片每张图片都有在数据中存储也存储有对应旋转角度orientation值
  3. // 所以我们在取出图片是把角度值取出以便能正确的显示图片,没有旋转时的效果观看
  4. ContentResolver cr = this.getContentResolver();
  5. Cursor cursor = cr.query(mImageCaptureUri, null, null, null, null);// 根据Uri从数据库中找
  6. if (cursor != null) {
  7. cursor.moveToFirst();// 把游标移动到首位,因为这里的Uri是包含ID的所以是唯一的不需要循环找指向第一个就是了
  8. String filePath = cursor.getString(cursor.getColumnIndex("_data"));// 获取图片路
  9. String orientation = cursor.getString(cursor
  10. .getColumnIndex("orientation"));// 获取旋转的角度
  11. cursor.close();
  12. if (filePath != null) {
  13. Bitmap bitmap = BitmapFactory.decodeFile(filePath);//根据Path读取资源图片
  14. int angle = 0;
  15. if (orientation != null && !"".equals(orientation)) {
  16. angle = Integer.parseInt(orientation);
  17. }
  18. if (angle != 0) {
  19. // 下面的方法主要作用是把图片转一个角度,也可以放大缩小等
  20. Matrix m = new Matrix();
  21. int width = bitmap.getWidth();
  22. int height = bitmap.getHeight();
  23. m.setRotate(angle); // 旋转angle度
  24. bitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height,
  25. m, true);// 从新生成图片
  26. }
  27. photo.setImageBitmap(bitmap);
  28. }
  29. }
  30. }

OK完成,需要拍照和选择图片功能的部分请看http://104zz.iteye.com/blog/1687662

android 选择图片或拍照时旋转了90度问题的更多相关文章

  1. android选择图片或拍照图片上传到服务器(包括上传参数)

    From:http://blog.csdn.net/springsky_/article/details/8213898具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 [java ...

  2. android选择图片或拍照图片上传到server(包含上传參数)

    在9ria论坛看到的.还没測试,先Mark与大家分享一下. 近期要搞一个项目,须要上传相冊和拍照的图片.不负所望,最终完毕了! 只是须要说明一下,事实上网上非常多教程拍照的图片.都是缩略图不是非常清晰 ...

  3. 微信小程序 --- 选择图片和拍照

    wx.chooseImage 选择图片 / 进行拍照 //获取应用实例 const app = getApp() Page({ data: { onOff:true }, btnclick:funct ...

  4. 朝花夕拾-android 从手机选择图片或拍照设置头像

    Demo源码位置:http://git.oschina.net/zj2012zy/Android-Demo/tree/master/AndroidDemo/headset 一般需要用户信息的好多的也需 ...

  5. Android实现图片的压缩、旋转工具类

    import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matri ...

  6. html页面选择图片上传时实现图片预览功能

    实现效果如下图所示 只需要将下面的html部分的代码放入你的代码即可 (注意引入jQuery文件和html头部的css样式,使用的是ajax提交) <!-- 需引入jQuery 引入样式文件 引 ...

  7. Office 超级录屏如何旋转视频90度之后保存

    打开视频转换专家   添加视频后点击编辑,然后在旋转的地方设置旋转,应用   输出可以正常播放  

  8. Android 4.4从图库选择图片,获取图片路径并裁剪

    转至 http://blog.csdn.net/tempersitu/article/details/20557383 最近在做一个从图库选择图片或拍照,然后裁剪的功能.本来是没问题的,一直在用 In ...

  9. JS 解决 IOS 中拍照图片预览旋转 90度 BUG

    上篇博文[ Js利用Canvas实现图片压缩 ]中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度.对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编 ...

随机推荐

  1. C#中ToString()格式详解

    以下内容均摘自博客园,仅供资料查询. ToString格式化 在很多对象显示为字符串的时候都会使用到ToString中的格式化,由于以前没怎么注意到这个问题,想总结一下各个基础结构对象的格式化,以便后 ...

  2. MongoDB 导出、导入表

    var srcTbl = "20161226"; var destTbl = "20161226-bak";   方式一: MongoClient client ...

  3. [LeetCode] Implement strStr() 实现strStr()函数

    Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...

  4. vim修改文字编码

    在Vim中查看文件编码 :set fileencoding 即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在~/.vimrc 文件中添加以下内容: ...

  5. IOS实现自动循环滚动广告--ScrollView的优化和封装

    一.问题分析 在许多App中,我们都会见到循环滚动的视图,比如广告,其实想实现这个功能并不难,用ScrollView就可以轻松完成,但是在制作的过程中还存在几个小问题,如果能够正确的处理好这些小问题, ...

  6. MySQL练习题

    MySQL练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号和平均成 ...

  7. echarts-在现实标题中显示百分比

    如图:需要在标题显示所占百分比 使用方式:途中标记部分 series : [{ name: '类型', type: 'pie', radius : '55%', center: ['50%', '60 ...

  8. 被误解的MVC和被神化的MVVM(转)

    转载自:http://www.infoq.com/cn/articles/rethinking-mvc-mvvm 原文作者:唐巧 被误解的 MVC MVC 的历史 MVC,全称是 Model View ...

  9. css学习笔记(2)

    ----------------|-------------------------|------------------ 标签名           英文全拼                  中文 ...

  10. iOS中获取当前时间,设定时间,并算出差值

    NSDate *date = [NSDate date];//获取当前时间 NSTimeZone *zone = [NSTimeZone systemTimeZone];//修改时区 NSIntege ...