android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
2012-08-29 13:01
561 查看
第一步: AndroidManifest.xml 在Activity添加以下一个属性
第二步,解决竖屏拍照后保存图片会旋转90度的问题。这里我会在onConfigurationChanged方法进行判断当前是横拍还是竖拍,然后在调用相机拍照后,在保存图片的方法里,进行竖拍的照片90度旋转。
关键代码是以上。
当用竖拍转横拍,还是横拍转竖拍,都要先在surfaceChanged方法,停止预览相机,重新设置下摄像头就不会再出现90度旋转。
源码下载
android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="sensor",为的是能够横竖屏切换不用再次调用onCreate方法,直接调用onConfigurationChanged方法。screenSize是兼容4.0系统的才可以生效,否则方法没效。
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="sensor"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
第二步,解决竖屏拍照后保存图片会旋转90度的问题。这里我会在onConfigurationChanged方法进行判断当前是横拍还是竖拍,然后在调用相机拍照后,在保存图片的方法里,进行竖拍的照片90度旋转。
PictureCallback jpeg = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-generated method stub Bitmap bMap; try {// 获得图片 bMap = BitmapFactory.decodeByteArray(data, 0, data.length); Bitmap bMapRotate; if (takeType != 0) { //坚拍 Matrix matrix = new Matrix(); matrix.reset(); matrix.postRotate(90); bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), matrix, true); bMap = bMapRotate; } // Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length); File file = new File(filePath); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); bMap.compress(Bitmap.CompressFormat.JPEG, 100, bos);//将图片压缩到流中 bos.flush();//输出 bos.close();//关闭 }catch(Exception e) { e.printStackTrace(); } } };
关键代码是以上。
当用竖拍转横拍,还是横拍转竖拍,都要先在surfaceChanged方法,停止预览相机,重新设置下摄像头就不会再出现90度旋转。
源码下载
相关文章推荐
- android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
- Android解决三星手机拍照图片调用时逆时针旋转90度问题
- Android 自定义拍照,解决图片旋转,拍照参数设置兼容问题
- android 选择图片或拍照时旋转了90度问题
- 解决android有的手机拍照后上传图片被旋转的问题
- android解决有些手机拍照图片旋转了角度的问题
- 解决android有的手机拍照后上传图片被旋转的问题
- Android拍照后获得的图片旋转90度问题
- android拍照后图片路径的获取(解决不同手机存在拍照后旋转的问题)
- 解决android有的手机拍照后上传图片被旋转的问题
- 解决android有的手机拍照后上传图片被旋转的问题
- android 选择图片或拍照时旋转了90度问题
- 解决android有的手机拍照后上传图片被旋转的问题
- 解决android有的手机拍照后上传图片被旋转的问题
- Android开发——相册拍照_03.解决相机拍照之后部分手机无法将图片保存到路径或部分手机点击相机确定无法返回问题
- Uri android 选择图片或拍照时旋转了90度问题
- Android部分手机拍照后获取的图片被旋转问题的解决方法
- 解决android有的手机拍照后上传图片被旋转的问题
- 解决android有的手机拍照后上传图片被旋转的问题
- android学习笔记----解决android有的手机拍照后上传图片被旋转的问题