关于android中调用系统拍照,返回图片是旋转90度..
2014-07-11 15:00
549 查看
由于项目的需要,没有自定义拍照功能,仅仅调用了系统的拍照程序..但是出现了一个问题,就是拍照完成显示图片居然是被旋转的图片....
解决办法:
解决办法:
/** * 获取图片的旋转角度,有些系统把拍照的图片旋转了,有的没有旋转 */ 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);
01 | /** |
02 | * 读取图片属性:旋转的角度 |
03 | * @param path 图片绝对路径 |
04 | * @return degree旋转的角度 |
05 | */ |
06 | public static int readPictureDegree(String path) { |
07 | int degree = 0 ; |
08 | try { |
09 | ExifInterface exifInterface = new ExifInterface(path); |
10 | int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_NORMAL); |
11 | switch (orientation) { |
12 | case ExifInterface.ORIENTATION_ROTATE_90: |
13 | degree = 90 ; |
14 | break ; |
15 | case ExifInterface.ORIENTATION_ROTATE_180: |
16 | degree = 180 ; |
17 | break ; |
18 | case ExifInterface.ORIENTATION_ROTATE_270: |
19 | degree = 270 ; |
20 | break ; |
21 | } |
22 | } catch (IOException e) { |
23 | e.printStackTrace(); |
24 | } |
25 | return degree; |
26 | } |
27 | /* |
28 | * 旋转图片 |
29 | * @param angle |
30 | * @param bitmap |
31 | * @return Bitmap |
32 | */ |
33 | public static Bitmap rotaingImageView( int angle ,Bitmap bitmap) { |
34 | //旋转图片 动作 |
35 | Matrix matrix = new Matrix();; |
36 | matrix.postRotate(angle); |
37 | System.out.println( "angle2=" + angle); |
38 | // 创建新的图片 |
39 | Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0 , 0 , |
40 | bitmap.getWidth(), true ); |
41 | return resizedBitmap; |
42 | } |
/**
* 读取图片属性:旋转的角度
* @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;
}
相关文章推荐
- 关于android中调用系统拍照,返回图片是旋转90度..
- 关于android中调用系统拍照,返回图片是旋转90度
- 关于android中调用系统拍照,返回图片是旋转90度..
- 关于android中调用系统拍照,返回图片是旋转90度..
- 关于android中调用系统拍照,返回图片是旋转90度...
- 关于android中调用系统拍照,返回图片是旋转90度..
- 关于android中调用系统拍照,返回图片是旋转90度
- 关于android中调用系统拍照,返回图片是旋转90度..
- 关于android中调用系统拍照,返回图片是旋转90度的处理
- android中调用系统拍照,返回图片是旋转90度
- Android调用相机拍照并返回路径和调用系统图库选择图片
- 关于android 调用系统图片浏览器并返回图片路径问题
- 【转】 解决通过Intent调用系统拍照程序,返回图片太小的问题[android]
- 关于部分手机调用系统拍照和相册图片出现旋转问题处理
- Android 调用系统拍照后返回的图片变小了(变模糊了)
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- 关于android 调用系统图片浏览器并返回图片路径问题
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时为什么会回到home界面或者到前一个界面,然后才会跳转到当前activity
- android 调用系统相册选取照片或者打开相机拍照获取图片,返回时回到手机桌面,然后才会跳转到当前activity
- 解决通过Intent调用系统拍照程序,返回图片太小的问题[android]