gpt4 book ai didi

android - SurfaceView 正在交换红色和蓝色的 Google Glass 相机颜色

转载 作者:行者123 更新时间:2023-11-29 14:37:58 25 4
gpt4 key购买 nike

由于某些奇怪的原因,surfaceView 可以很好地显示图像,但交换了红色和蓝色 channel 。我使用的代码与 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;
}
}

}

知道为什么要进行这种颜色交换吗?

最佳答案

我遇到了同样的问题,把我逼疯了。经过大量努力,我发现由于某些奇怪的原因,当布局仅包含 FrameLayout 时会发生这种情况,FrameLayout 包含相机的 SurfaceView 而没有其他布局元素。在我的例子中,我在 FrameLayout 上添加了空的 TextView 并且它解决了。奇怪但有效。 (最终我使用这个 TextView 来显示文本,所以这是样式和位置属性的原因)

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="${relativePackage}.${activityClass}"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/CameraView" />

<TextView
android:id="@+id/status_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:layout_gravity="center_horizontal|top"

android:padding="5dip"
android:textColor="#000000"

android:text="" />

关于android - SurfaceView 正在交换红色和蓝色的 Google Glass 相机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24636242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com