2013-07-23 84 views
0

我正在创建一个应用程序,其中一部分具有相机预览功能。相机预览问题 - 预览变为像素化和失真

我的问题是,如果我在设备上打回家并重新打开应用程序,则相机会以紫色线条穿过它进行像素化。我原以为这是什么做的的onResume()/的onPause()方法,但我在这我停止我的预览和设置相机为空(下同)

在恢复

@Override 
    public void onResume() { 

     //Registering the Listener 
     super.onResume(); 
     manager.registerListener(this, 
       manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
       manager.SENSOR_DELAY_NORMAL); 

     //Opening the Camera and Starting the Preview 
     camera = Camera.open(); 
     startPreview(); 
    } 

暂停时

@Override 
    public void onPause() { 

     super.onPause(); 
     if(camera!=null) 
     { 
      camera.stopPreview(); 
      camera.release(); 
      camera = null; 
      inPreview = false; 

     } 
    } 

我有用户的选项,以夺回自己的PIC,如果用户试图夺回图像第三次我面临着同样的问题。我不知道是什么问题,我得到我的相机代码

https://github.com/commonsguy/cw-advandroid/blob/master/Camera/Preview/src/com/commonsware/android/camera/PreviewDemo.java

只需稍加修改,以满足我的需求。

从阅读和研究似乎我的onPause和的onResume是正确的所以这可能不是问题...

任何帮助表示赞赏

+0

如果你删除startPreview()然后会发生什么? –

+0

该代码有点旧。话虽如此,我从来没有经历过你所描述的行为,这可能与你的特定设备模型(不管它是什么)有关。如果您可以通过[我的CWAC-Camera库](https://github.com/commonsguy/cwac-camera)重现问题,请告诉我设备型号是什么,以便我可以进一步研究。 – CommonsWare

+0

@CommonsWare我会看看那个库,但同时只是让你知道我使用的设备是三星Nexus 10 –

回答

1

如果像我这样的人(学习的绳索)遇到同样的问题,我的问题是我已经添加

camera.setDisplayOrientation(90); 

为了旋转预览到肖像。我的问题是,我曾在错误的地方打过电话,现在我使用onResume()方法。

最后一个简单的修复...谢谢大家