android - 在stopPreview和方向更改后保持相机预览的最佳方法

时间:2013-01-25 03:26:02

标签: android orientation android-camera

之前我已经构建了大量与相机相关的应用程序,但它们始终是在用户拍摄照片后将视图锁定为横向或纵向的活动中构建的。然而,这个新的应用程序要求要求允许在我调用camera.stopPreview()后允许在屏幕上捕获的图像旋转。我想过这样做......

1.)将我的图片回调中的字节存储起来并将其放入包中

2.)在我的onResume中检查bundle!= null是否获取字节数组

3.)因为我将surfaceView放在frameLayout中,我可以暂时替换surfaceView 使用imageView并使用bitmapfactory.decodebytearray()为imageview创建位图图像。

现在我知道我可以让一切工作得很好但有没有办法只是通过相机预览或其他东西所以我不需要额外的长度来达到我的要求?此外,我必须创建和存储的位图越少,内存越明显,这就是为什么我不去做那个原因。

1 个答案:

答案 0 :(得分:0)

我最终在我的图片回调中使用了这个

if(getScreenOrientation()==Configuration.ORIENTATION_LANDSCAPE){
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         }else{
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
         }

然后在我使用的一个按钮中

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

将其全部重新打开,以便再次旋转