Android编程中调用Camera时预览画面有旋转问题的解决方法

本文实例讲述了Android编程中调用Camera时预览画面有旋转问题的解决方法。分享给大家供大家参考,具体如下:

在调用Camera写应用的时候,前后摄像头的情况有时候是不一样的。有时候,明明后摄像头没有问题,而调用到前摄像头时,却倒转了180°,或者其他角度,百思不得其解。在查看了Android源码之后,发现它的解决办法很是好,接下来贴个源码,以备日后查看。

public static int getDisplayRotation(Activity activity) { int rotation = activity.getWindowManager().getDefaultDisplay() .getRotation(); switch (rotation) { case Surface.ROTATION_0: return 0; case Surface.ROTATION_90: return 90; case Surface.ROTATION_180: return 180; case Surface.ROTATION_270: return 270; } return 0; } public static void setCameraDisplayOrientation(Activity activity, int cameraId, Camera camera) { // See android.hardware.Camera.setCameraDisplayOrientation for // documentation. Camera.CameraInfo info = new Camera.CameraInfo(); Camera.getCameraInfo(cameraId, info); int degrees = getDisplayRotation(activity); int result; if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { result = (info.orientation + degrees) % 360; result = (360 - result) % 360; // compensate the mirror } else { // back-facing result = (info.orientation - degrees + 360) % 360; } camera.setDisplayOrientation(result); }

在调用Camera的时候只要调用setCameraDisplayOrientation这个方法就可以了。

希望本文所述对大家Android程序设计有所帮助。

时间: 2024-11-23 09:10:11

Android编程中调用Camera时预览画面有旋转问题的解决方法的相关文章

Android编程中调用Camera时预览画面有旋转问题的解决方法_Android

本文实例讲述了Android编程中调用Camera时预览画面有旋转问题的解决方法.分享给大家供大家参考,具体如下: 在调用Camera写应用的时候,前后摄像头的情况有时候是不一样的.有时候,明明后摄像头没有问题,而调用到前摄像头时,却倒转了180°,或者其他角度,百思不得其解.在查看了Android源码之后,发现它的解决办法很是好,接下来贴个源码,以备日后查看. public static int getDisplayRotation(Activity activity) { int rotat

Android编程中activity启动时出现白屏、黑屏问题的解决方法_Android

本文实例讲述了Android编程中activity启动时出现白屏.黑屏问题的解决方法.分享给大家供大家参考,具体如下: 默认情况下 activity 启动的时候先把屏幕刷成白色,再绘制界面,绘制界面或多或少有点延迟,这段时间中你看到的就是白屏,显然影响用户体验,怎么消除呢? 在 Activity theme 设置style 即可 <style name="AppTheme" parent="android:Theme.Light.NoTitleBar">

在Word2010中邮件合并时预览结果

用户在Word2010文档中进行邮件合并时,可以根据需要随时预览结果,操作步骤如下所述: 第1步,打开Word2010文档窗口,切换到"邮件"功能区进行邮件合并各项操作.第2步,在"预览结果"分组中单击"预览结果"按钮,可以随时预览结果,如图1所示. 图1单击"预览结果"按钮

javascript预览上传图片发现的问题的解决方法_图象特效

先看看效果图吧: 机会难得,有点技术亮点,就一下子投入到功能开发中去了.在这一块的功能开发中,自己还是学到些不错的东西,其中一点就是,用户选择上传的图片,如何预览出来呢.网上找了些资料,最终采用如下方法: 复制代码 代码如下: function (obj) { //logo上传添加事件 var logoimg = null; if (document.all) {//如果是IE情况下 obj.select(); logoimg = document.selection.createRange()

照相机-android camera开始预览以后 数据时怎么刷到surfaceview上面的

问题描述 android camera开始预览以后 数据时怎么刷到surfaceview上面的 当camera打开以后 初始化 调用 initDisplayBuffers()以后 是如何刷新 界面的 也就是如何将数据传到屏幕的,代码看到了好久 ,也没有了解这个刷新机制,求指点. 解决方案 当APP调用系统API打开摄像头时,命令从framework到HAL,再到内核,内核的摄像头驱动会初始化摄像头接口,摄像头sensor,然后经由摄像头采集图像数据,存放到事先分配好的内存中.完成之后,内核会将存

Android编程中光线传感器的调用方法详解

本文实例讲述了Android编程中光线传感器的调用方法.分享给大家供大家参考,具体如下: 1.activity如果要使用传感器,就必须实现SensorEventListener接口 2.得到传感器管理对象(sensormanager) 3.使用sensormanager.registerlistener 方法注册指定的传感器 4.在sensoreventlistener 接口中的onsensorchanged和onaccuracychanged方法中完成其他具体工作 public class T

android-Android中,利用SurfaceView预览相机时,如何继续想预览窗口中添加一个组件

问题描述 Android中,利用SurfaceView预览相机时,如何继续想预览窗口中添加一个组件 如题所示,最近一直在做这个东西,麻烦路过的朋友指教一二,谢谢 解决方案 应该是说预览窗口上有一些菜单之类的东西吧? 如果是这个case,那么就是surfaceview放在下面,上面可以叠一个背景透明的frame,在里面添加一些控件就可以. 写camera应用,建议可以看到android自带的gallery,camera应用,功能很全面,也是几个系统自带应用比较复杂的了.

Android编程中activity的完整生命周期实例详解_Android

本文实例分析了Android编程中activity的完整生命周期.分享给大家供大家参考,具体如下: android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误.这篇文章很长,希望不要耽误大家的时间- 今天不会涉及太多关于activity栈的东西,主要说activity自身的生命周期 区分几个概念 1 Activity 官方解释为 "An Activity is an application component that pro

Android编程中关于单线程模型的理解与分析_Android

本文讲述了Android编程中关于单线程模型的理解与分析.分享给大家供大家参考,具体如下: 当一个Android程序启动时,Android系统会同时启动一个对应的主线程(Main Thread). 由于这个主线程(Main Thread)主要的任务就是对UI相关的事件进行处理(例如显示文本,处理点击事件,显示图片等),系统对每一个组件的调用都是从主线程中分发出去的,所以又常被称为UI线程. IMP,Android单线程模型的核心原则就是:只能在UI线程(Main Thread)中对UI进行处理.