【发布时间】:2014-07-08 15:48:02
【问题描述】:
由于某种奇怪的原因,surfaceView 可以很好地显示图像,但红色和蓝色通道被交换了。我使用的代码与Github project 中的代码基本相同,但有一些细微的变化。
我使用的代码是:
public class CameraView extends SurfaceView implements SurfaceHolder.Callback{
private SurfaceHolder surfaceHolder = null;
private Camera camera = null;
public CameraView(Context context) {
super(context);
surfaceHolder = this.getHolder();
surfaceHolder.addCallback(this);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
Parameters parameters = camera.getParameters();
parameters.setPreviewFpsRange(30000, 30000);
camera.setParameters(parameters);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
if (camera != null){ // Start the preview for surfaceChanged
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
this.releaseCamera();
}
camera.startPreview();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
this.releaseCamera(); // Do not hold the camera during surfaceDestroyed - view should be gone...
}
public void releaseCamera() {
if (camera != null) {
camera.release();
camera = null;
}
}
}
任何想法为什么这种颜色交换?
【问题讨论】:
-
你没有考虑在 GitHub 上打开一个 issue 吗?
-
嗨,Alex,我也在这里找不到答案,最终有人会遇到相同或相似的问题,对此的答案可能会很有用。到目前为止,我已经搜索并测试了许多解决方案,但都没有成功。我也不是 Android 专家。
-
我没有说“在 GitHub 上寻找答案”。但也许在关注 OpenQuartz 项目的人中(现在 32 人)有一些人有答案,或者可以找到答案,但没有订阅 SO [google-glass]
-
好的,好的,我会听从你的建议的。
标签: android camera google-glass google-gdk