我在android上开发,我想用相机做一些事情(处理像素的值),但是仅在背景下,是否可以在没有表面 View 的情况下进行?只需使用缓冲区读取像素的值并进行处理即可。
谢谢大家能帮助我

最佳答案

从API级别11开始,添加了SurfaceTexture。有了它,不再需要SurfaceView。我使用三星Galaxy S3 Neo测试了以下代码。

mCamera = Camera.open();
try {
    mCamera.setPreviewTexture(new SurfaceTexture(10));
} catch (IOException e1) {
    Log.e(Version.APP_ID, e1.getMessage());
}

Parameters params = mCamera.getParameters();
params.setPreviewSize(640, 480);
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
params.setPictureFormat(ImageFormat.JPEG);
mCamera.setParameters(params);
mCamera.startPreview();
mCamera.takePicture(null, null, null, new PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        Log.i(Version.APP_ID, "picture-taken");
    }
});

10-04 19:36