前阵子写了一个拍照的程序,拍完照片图片怎么看都是歪的,找了好久借鉴了很多博客找到了解决的办法,不说了 看代码把
- mOrientationListener = new OrientationEventListener(this){
- @Override
- public void onOrientationChanged(int orientation) {
- orientations =orientation;
- Log.v("time", "现在是横屏"+orientation);
- }
- };
在oncreate方法中添加OrientationEventListener,OrientationEventListener(方向事件监听器)是一个当方向发生变化时, 从 SensorManager(传感器管理程序)接收通知的辅助类,我就是通过这个来判断手机屏幕的旋转角度,从而将获取后的图片做相应的旋转。
接下来我在onResume中启动事件的监听器
- if(mOrientationListener!=null){//先判断下防止出现空指针异常
- mOrientationListener.enable();
- }
然后就可以在onPictureTaken中将图片旋转相应的角度:
- BitmapFactory.Options opts = new BitmapFactory.Options();
- opts.inPreferredConfig = Config.RGB_565;
- opts.inSampleSize =4;
- Bitmap bmp = BitmapFactory.decodeByteArray(images, 0, images.length,opts);
- Matrix matrixs = new Matrix();
- if(orientations > 325 || orientations <= 45){
- Log.v("time", "Surface.ROTATION_0;"+orientations);
- matrixs.setRotate(90);
- }else if(orientations > 45 && orientations <= 135){
- Log.v("time", " Surface.ROTATION_270"+orientations);
- matrixs.setRotate(180);
- }else if(orientations > 135 && orientations < 225){
- Log.v("time", "Surface.ROTATION_180;"+orientations);
- matrixs.setRotate(270);
- }else {
- Log.v("time", "Surface.ROTATION_90"+orientations);
- matrixs.setRotate(0);
- }
- bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrixs, true);
这样图片就旋转过来了,最后别忘了在onPause中将事件监听器关掉:
- if(mOrientationListener!=null){
- mOrientationListener.disable();
- }
ok!这样就完成了。这算是一点小小的收获吧!
相关推荐
调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的。其它品牌的手机都是正常的,就三星出现这个怪事。 在Android适配上,我原来一直以为国内的小米手机够奇葩...
android 解决部分手机拍照旋转问题
android相机拍照,存储 调用相册, 图片旋转,裁剪
android 图片 拍照 删除 添加 旋转 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout....
看到网上有很多解决关于拍照后图片旋转的问题,特别是三星的机型问题最大,但是都不能很好的解决问题,所以花时间研究了下,终于解决了拍照后图片旋转的问题,再此把代码贴出来跟大家一起研究下,有什么不对的地方还...
Android调用系统相机拍照、实现压缩、图片旋转、保存以及6.0以上适配问题
原文:http://blog.csdn.net/u012964281/article/details/41143169
Android 拍照 或者选择相册图片,并剪切图片后,设置头像,解决三星手机拍照后图片旋转和图片过大时剪切失败的问题
拍照或者从相册中选择图片后,我们都可以直接或间接的得到Uri或...大多数情况下操作图片不可避免的涉及到直接操作Bitmap,所以就需要解决图片旋转问题了,下面是演示如何拍照、选择相册中的图片后进行Bitmap旋转。
早几天在开放中遇到三星照相旋转90度,上网去找资源都没有完整的资源。之后自己尝试多种方法实现了。希望能帮助到大家
主要介绍了Android 开发手机(三星)拍照应用照片旋转问题解决办法的相关资料,需要的朋友可以参考下
该项目包括调用系统相机拍照,和从系统选取图片,并对图片进行裁剪(仿微信做法),并解决三星手机拍照和选取照片角度旋转问题
demo适合大多数项目使用,调用比较简单。包括 拍照 ,选择相册返回 图片旋转 切割 倒影 黑白 效果等功能。
遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的是正的,这样问题就来了,不能用户发个照片在微博上看到的是被旋转了的啊,另外一个项目里旋转了的图片直接匹配出现...
TakePhoto是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库,目前最新版本3.0.2。 支持通过相机拍照获取图片 支持从相册选择图片 支持从文件选择图片 支持批量...
Android自定义相册,完全仿微信UI,实现了拍照、图片选择(单选/多选)、 裁剪(支持圆形头像)、旋转、压缩等功能。
Android自定义相册,完全仿微信UI,实现了拍照(兼容部分手机拍照报错bug)、图片选择(单选/多选)、 裁剪 、旋转、等功能。因为公司使用Eclipse开发项目,许多开源的东西都是Android studio 开发的,是在没办法,...