Android - 相机预览
问题描述:
我正在尝试相机预览Android - 相机预览
这是我的代码,它不会抛出任何错误,但屏幕仍然是黑色的。有任何想法吗?
this.setContentView(R.layout.camerapreview);
SurfaceView cameraSurface = (SurfaceView)findViewById(R.id.cpPreview);
SurfaceHolder holder = cameraSurface.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
this.camera = Camera.open();
this.camera.setPreviewDisplay(holder);
this.camera.startPreview();
camerapreview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<SurfaceView
android:id="@+id/cpPreview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
</SurfaceView>
</LinearLayout>
答
你太早调用最后三行。在致电setPreviewDisplay()
之前,您必须等待表面准备好,并且在致电startPreview()
之前必须等待表面的大小(surfaceChanged()
)。 This project有你所需要的。
这很好。附加问题。在Android 2.3和3.0上,当我们旋转设备时,预览似乎有偏斜。你是否也有这个解决方案呢? – 2013-11-05 18:53:40
@NileshPawar:在这种情况下,我不知道你的意思是“歪斜”。 FWIW,我目前的相机工作在:https://github.com/commonsguy/cwac-camera – CommonsWare 2013-11-05 19:01:46
哦哇。来自新代码的Camera-demov9解决了问题!我将获得我所做的不同的差异,并将其发布在这里,为大家的利益。在这些领域中,Google文档晦涩难懂。 – 2013-11-05 19:40:31