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

本文实例讲述了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程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, camera
, 解决方法
, 预览画面
, 旋转问题
Camera旋转
android camera 旋转、android camera 预览、three.js camera 旋转、camera 预览左右镜像、android camera2 预览,以便于您获取更多的相关知识。

时间: 2024-10-26 05:36:30

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

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

本文实例讲述了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">

Android编程实现设置按钮背景透明与半透明及图片背景透明的方法_Android

本文实例讲述了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法.分享给大家供大家参考,具体如下: Button或者ImageButton的背景设为透明或者半透明: 半透明 复制代码 代码如下: <Button android:background="#e0000000" ... /> 透明 复制代码 代码如下: <Button android:background="#00000000" ... /> 颜色和不透明度 (al

丢失Android系统库或者Conversion to Dalvik format failed with error 1错误的解决方法_Android

本文分析了丢失Android系统库或者Conversion to Dalvik format failed with error 1错误的解决方法.分享给大家供大家参考,具体如下: 在eclipse开发Android项目时出现的很多问题都可以使用Project--------->clean来轻易解决. 但如果出现说Android库找不到,或者不小心remove了Android系统库,怎么重新添加Android系统库呢?在eclipse里面的Java Build Path里面是没法添加例如Andr

在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 ListView的item背景色设置和item点击无响应的解决方法_Android

下面讲解以下在使用listview时最常见的几个问题.1.如何改变item的背景色和按下颜色 listview默认情况下,item的背景色是黑色,在用户点击时是黄色的.如果需要修改为自定义的背景颜色,一般情况下有三种方法: 1)设置listSelector 2)在布局文件中设置item的background 3)在adapter的getview中设置 这三种方法都能达到改变item默认的背景色和按下颜色,下面来分别讲解,但是在这之前需要先写好selector.xml文件; 复制代码 代码如下:

Android程序报错程序包org.apache.http不存在问题的解决方法_Android

Android Studio 2.1中使用 Android SDK 6.0(API 23),加载融云Demo时,报错: 解决办法: Android 6.0(api 23)已经不支持HttpClient了,在build.gradle中 加入 useLibrary 'org.apache.http.legacy'就可以了,如图:

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

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