gpt4 book ai didi

android - AsyncTask 打开相机

转载 作者:太空狗 更新时间:2023-10-29 13:29:13 26 4
gpt4 key购买 nike

我有一个使用全屏 SurfaceHolder 的 Activity ,打开相机进行预览(基于 zxing 代码)。

开始这个 Activity 结果很慢(1.x 秒),我认为是因为相机管理器的繁重工作。我正在使用 onResume 方法;将代码移动到 AsyncTask 中是个好主意吗?

我想立即渲染布局,然后等待相机(我认为这是更好的用户体验)。我该如何处理?

Activity

private class CameraTask extends AsyncTask<Void, Void, Void> {
SurfaceHolder.Callback callback;

public CameraTask(SurfaceHolder.Callback callback) {
this.callback = callback;
}
protected void doInBackground() {
cameraManager = new CameraManager(getApplication());
viewfinderView = (ViewFinderView) findViewById(R.id.viewfinder_view);
viewfinderView.setCameraManager(cameraManager);
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();

if (hasSurface) {
initCamera(surfaceHolder);
} else {
surfaceHolder.addCallback(callback);
}
}
}

这段代码没有错误,但布局渲染仍然等待相机打开。我在 onResume 中调用 AsyncTask 的执行方法,它的位置是否正确?

最佳答案

解决方案在这里找到:Show my Layout while SurfaceView is loading Camera Preview .基本上,以编程方式添加 SurfaceView,而不是在您的 xml 布局中。

关于android - AsyncTask 打开相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835470/

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