获取图片库图片后旋转了90度的问题

发布时间:2017-1-24 21:04:55 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"获取图片库图片后旋转了90度的问题",主要涉及到获取图片库图片后旋转了90度的问题方面的内容,对于获取图片库图片后旋转了90度的问题感兴趣的同学可以参考一下。

由于前面的博文中忽略了点内容,所以在这里补上,下面内容就是解决拍照或者选择图片显示的时候图片旋转了90度或者其他度数问题,以便照片可以正面显示:具体如下:   首先直接看上面博文下的拍完照或者选完图后处理部分: Java代码   @Override       protected void onActivityResult(int requestCode, int resultCode, Intent data) {              switch (resultCode) {           case 1:               if (data != null) {                   // 取得返回的Uri,基本上选择照片的时候返回的是以Uri形式,但是在拍照中有得机子呢Uri是空的,所以要特别注意                   Uri mImageCaptureUri = data.getData();                   // 返回的Uri不为空时,那么图片信息数据都会在Uri中获得。如果为空,那么我们就进行下面的方式获取                   if (mImageCaptureUri != null) {                       setImage(mImageCaptureUri);// 根据Uri处理并显示图片                   }               }               break;           default:               break;              }       }    第二:处理90度问题并显示: Java代码   private void setImage(Uri mImageCaptureUri) {          // 不管是拍照还是选择图片每张图片都有在数据中存储也存储有对应旋转角度orientation值       // 所以我们在取出图片是把角度值取出以便能正确的显示图片,没有旋转时的效果观看          ContentResolver cr = this.getContentResolver();       Cursor cursor = cr.query(mImageCaptureUri, null, null, null, null);// 根据Uri从数据库中找       if (cursor != null) {           cursor.moveToFirst();// 把游标移动到首位,因为这里的Uri是包含ID的所以是唯一的不需要循环找指向第一个就是了   //“_data”即MediaStore.Images.Media.DATA         String filePath = cursor.getString(cursor.getColumnIndex("_data"));// 获取路径         String orientation = cursor.getString(cursor                   .getColumnIndex("orientation"));// 获取旋转的角度           cursor.close();           if (filePath != null) {               Bitmap bitmap = BitmapFactory.decodeFile(filePath);//根据Path读取资源图片               int angle = 0;               if (orientation != null && !"".equals(orientation)) {                   angle = Integer.parseInt(orientation);               }               if (angle != 0) {                   // 下面的方法主要作用是把图片转一个角度,也可以放大缩小等                   Matrix m = new Matrix();                   int width = bitmap.getWidth();                   int height = bitmap.getHeight();                   m.setRotate(angle); // 旋转angle度                   bitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height,                           m, true);// 从新生成图片                                  }               photo.setImageBitmap(bitmap);           }       }   }    OK完成,需要拍照和选择图片功能的部分请看http://104zz.iteye.com/blog/1687662

上一篇:(step7.2.3)hdu 2554(N对数的排列问题——简单数论)
下一篇:背包九讲

相关文章

相关评论