【问题标题】:Android: How to open front camera in landscape mode only?Android:如何仅在横向模式下打开前置摄像头?
【发布时间】:2016-02-01 12:07:55
【问题描述】:

当我没有升级到 4.4.2 时,支持前置摄像头,屏幕以横向模式打开,但当我升级到最新版本时,摄像头不支持前置模式,它正在旋转到纵向模式。

我打开相机的源代码如下:

private void getPhotoFromCamera() 
    {
        try 
        {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.putExtra("android.intent.extras.CAMERA_FACING",1);
             VisitorRegistrationFragment.this.startActivityForResult(intent,FROM_CAMERA);
         } 
         catch (Exception e) 
         {
            e.printStackTrace();
         } 
         catch (OutOfMemoryError e) 
         {
            e.printStackTrace();
         }

    }

谁能帮我看看如何打开前置摄像头以及如何限制摄像头只能在横向模式下打开?

【问题讨论】:

    标签: android android-camera android-camera-intent


    【解决方案1】:

    您可以尝试将方向放在意图中:

    intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    

    如果您在 Manifest 中设置活动,请添加:

    <activity
        android:name="yourLandscapeActivity"
        android:screenOrientation="landscape"              
    </activity>
    

    【讨论】:

      【解决方案2】:

      只需在横向模式下定义您的活动

      android:screenOrientation="landscape"
      

      并使用以下代码打开前置摄像头

      private Camera openFrontFacingCameraGingerbread() {
          int cameraCount = 0;
          Camera cam = null;
          Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
          cameraCount = Camera.getNumberOfCameras();
          for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
              Camera.getCameraInfo(camIdx, cameraInfo);
              if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                  try {
                      cam = Camera.open(camIdx);
                  } catch (RuntimeException e) {
                      Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage());
                  }
              }
          }
      
          return cam;
      }
      

      参考链接How do I open the "front camera" on the Android platform?

      【讨论】:

      • 但是如何将这个相机传递给意图?
      • 通过添加intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
      猜你喜欢
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 2014-09-28
      相关资源
      最近更新 更多