android强制相机以横向模式拍照

时间:2012-06-12 10:18:14

标签: android android-camera-intent

我想强制默认的Android相机仅以横向模式拍照。 我试过以下:

         Intent cameraIntent=new Intent("android.media.action.IMAGE_CAPTURE");
         File photo = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "Pic.jpg");
         cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
         cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         startActivity(cameraIntent);

但这仅适用于2.1而不适用于以后。 我只想让照片图像以横向模式保存。我不想使用任何图像处理,如矩阵或自定义相机。

注意:我从活动中调用此意图,该活动的方向固定为“肖像

2 个答案:

答案 0 :(得分:3)

在androidmanifest.xml中

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

此活动将是您的图像捕捉活动。

答案 1 :(得分:0)

使用ACTION_IMAGE_CAPTURE意图,您对实际驱动相机的应用程序的控制有限。您可以期望它符合意图contract,但仅此而已。

  

标准意图动作,可以发送给相机应用程序捕获图像并将其返回。

     

调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置。如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象。这对于只需要小图像的应用程序非常有用。如果存在EXTRA_OUTPUT,则将将全尺寸图像写入EXTRA_OUTPUT的Uri值。从LOLLIPOP开始,这个uri也可以通过setClipData(ClipData)提供。如果使用此方法,您仍然必须通过EXTRA_OUTPUT字段提供uri以与旧应用程序兼容。如果你没有设置ClipData,那么在调用startActivity(Intent)时会为你复制它。

     

注意:如果您的应用程序以M及更高版本为目标并声明为使用未授予的CAMERA权限,则尝试使用此操作将导致SecurityException。

如果您感兴趣,可以从此意图接收图像并强制将其旋转到横向。请注意,今天许多相机应用程序无论如何都只生成风景照片。

相关问题