关于android中调用系统拍照,返回图片是旋转90度..

由于项目的需要,没有自定义拍照功能,仅仅调用了系统的拍照程序..但是出现了一个问题,就是拍照完成显示图片居然是被旋转的图片....

解决办法:

/**
                 * 获取图片的旋转角度,有些系统把拍照的图片旋转了,有的没有旋转
                 */
                int degree = readPictureDegree(f.getAbsolutePath());  

                BitmapFactory.Options opts=new BitmapFactory.Options();//获取缩略图显示到屏幕上                 opts.inSampleSize=2;
                Bitmap cbitmap=BitmapFactory.decodeFile(f.getAbsolutePath(),opts);

                /**
                 * 把图片旋转为正的方向
                 */
                Bitmap newbitmap = rotaingImageView(degree, cbitmap);
                iv.setImageBitmap(newbitmap);
/**      * 读取图片属性:旋转的角度      * @param path 图片绝对路径      * @return degree旋转的角度      */    public static 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;                 }         } catch (IOException e) {                 e.printStackTrace();         }         return degree;     }    /*     * 旋转图片      * @param angle      * @param bitmap      * @return Bitmap      */     public static Bitmap rotaingImageView(int angle , Bitmap bitmap) {          //旋转图片 动作           Matrix matrix = new Matrix();;          matrix.postRotate(angle);          System.out.println("angle2=" + angle);          // 创建新的图片           Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,                  bitmap.getWidth(), bitmap.getHeight(), matrix, true);          return resizedBitmap;      }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 02:33:45

关于android中调用系统拍照,返回图片是旋转90度..的相关文章

android中调用相机拍照返回null的问题的终极解决办法

private ArrayList<String> mImageList; private static final int REQUEST_CAMERA = 5; // 相机拍照标记 private static final int CAMERA_REQUEST_CODE = 1; /** * 拍照获取照片 */ protected void selectPicFromCamera() { if (!SDCardUtils.isSDCardEnable()){ //不存在sd卡 Toast.

android中调用系统的发送短信、发送邮件、打电话功能

1 调用发送短信功能: Uri smsToUri = Uri.parse("smsto:"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); sendIntent.putExtra("address", "123456"); //电话号码,这行去掉的话,默认就没有电话 sendIntent.putExtra("sms_body","短信内容

Android中调用系统所装的软件打开文件(转)

Android中调用系统所装的软件打开文件(转) 在应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下! 这个是打开文件的一个方法: Java代码 /** * 打开文件 * @param file */ private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置in

Android:调用系统图库/裁剪图片

开发中,调用系统图库和裁剪照片是很常见的需求.相对于自己实现这种功能,直接调用系统具有诸多优点,如不用考虑屏幕适配,不用担心性能问题,等等.因此,对于一般的需求,建议直接调用系统的功能,简便高效! 首先上效果图:            一.只调用系统图库(不裁剪),返回用户选择的图片.(只支持单选,如需多选则需要自己实现,参考另一篇博文:Android:仿QQ照片选择器(按相册分类显示,多选添加)) 1.跳转至系统图库页面: Intent i = new Intent(Intent.ACTION

iOS开发- 相机(摄像头)获取到的图片自动旋转90度解决办法

http://www.tuicool.com/articles/IfEZre 今天写demo的时候发现, 如果把通过相机获取到的图片,直接进行操作, 比如裁剪, 缩放, 则会把原图片向又旋转90度. 刚开始觉得莫名其妙, 不知所措. 后来百度了一下,找到了解决办法. ps: 查找过程中, 碰到了一种说法: //get original photo from iOS photos //如果该图片大于2M,会自动旋转90度:否则不旋转 UIImage* originalImg=[dict objec

点击一次图片 图片就旋转90度

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=Edge,chrome=1"/> <meta name="viewport" content="width=devic

Android中调用系统已安装的播放器来播放网络流媒体视频

实现思路比较简单几行代码就可以搞定,在界面放一个Button或者带有播放图标的imageview,点击事件中调用本地播放器来播放. Uri uri = Uri.parse("http://218.200.69.66:8302/upload/Media/20150327/43bfda1b-7280-469c-a83b-82fa311c79d7.m4v"); // 调用系统自带的播放器来播放流媒体视频 Intent intent = new Intent(Intent.ACTION_VIE

iphone上传拍照图片时图片会旋转90度,从相册选择就不会,安卓手机也不会,怎么解决?

图片 展示元素用 img 就可以 自动修复 不要用第三方的插件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>图片上传<

Android上传图片之调用系统拍照和从相册选择图片

Android上传图片之调用系统拍照和从相册选择图片 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015年12月17日下午发了第一篇博文,现在是2016年4月6日.时间间隔长的过分啊,我自己都看不下去了.原因呢?当然是自己的原因,其实是有很多时间来些博客的,但是这些时间都花在DOTA上了(还是太年轻啊).请原谅我的过错--. 一.概述: 现在几乎应用都会用到上传图片的功能,而要上传图片,首先得选择图片,本文不针对如何上传图片到服务器(每个项目与服务器交互的方式不同,因