请问为什么我用setPreviewCallback会黑屏呢?
以下是onCreate部分...这个程序是我用opencv一个例子程序改的,例子程序是
public abstract class CameraViewBase extends SurfaceView implements SurfaceHolder.Callback, Runnable
因为我要加上手势操作..所以用xml写的布局文件.原来程序也运行没问题不会黑屏..不知道为什么移植改了一点就黑屏了。。
public void onCreate(Bundle savedInstanceState)--------------------编程问答-------------------- 解决?
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.visionbase);
VisionView = (SurfaceView) findViewById(R.id.VisionBaseView);
VisionHolder = VisionView.getHolder();
VisionHolder.addCallback(new Callback()
{
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
// TODO Auto-generated method stub
}
public void surfaceCreated(SurfaceHolder holder)
{
// TODO Auto-generated method stub
mCamera = Camera.open();
Camera.Parameters params = mCamera.getParameters();
// List<Camera.Size> sizes = params.getSupportedPreviewSizes();
// selecting optimal camera preview size
params.setPreviewSize(VisionView.getWidth(), VisionView.getHeight());
mCamera.setParameters(params);
try
{
mCamera.setPreviewDisplay(null);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
mCamera.startPreview();
mCamera.setPreviewCallback(new PreviewCallback()
{
public void onPreviewFrame(byte[] data, Camera camera)
{
synchronized (this)
{
mFrame = data;
this.notify();
}
}
});
// new Thread().start();
}
public void surfaceDestroyed(SurfaceHolder holder)
{
// TODO Auto-generated method stub
mThreadRun = false;
if (mCamera != null)
{
synchronized (this)
{
mCamera.stopPreview();
mCamera.setPreviewCallback(null);
mCamera.release();
mCamera = null;
}
}
}
});
补充:移动开发 , Android