gpt4 book ai didi

camera - camera.takePicture 后不显示图像审查

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:18 27 4
gpt4 key购买 nike

在我尝试过的所有手机上,包括带有 API 2.3.7 和 4.0 的 Galaxy Nexus,在调用 takePicture 方法后表面 View 更改为拍摄的图像,即“图像查看”。

我已经在这些平板设备上进行了测试,但没有显示图片评论:XOOM API 3.1银河标签 10.1 API 3.1银河标签 10.1 API 3.2

surfaceView = (SurfaceView)findViewById(R.id.surfaceView);

surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

...

public void takePicture() {
cam.takePicture(this, null, this); //Shuttercallback, RawCallback, JpegCallback
}

...

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// Stop preview before changing camera parameters
if(isPreviewRunning) {
this.cam.stopPreview();
}

Camera.Parameters p = this.cam.getParameters();
LogUtils.info("CheckCapture", "Preview Size: " + String.valueOf(width) +"x" + String.valueOf(height));
p.setPreviewSize(width, height);

//Set picture size to a multiple of previewSize to maintain aspect ratio AND minimum capture width
//LogUtils.info("CheckCapture", "Picture Size: " + String.valueOf(width*factor) +"x" + String.valueOf(height*factor));
p.setPictureSize(width, height);
p.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);

//Set picture format (we can check device capabilities, but all devices at API level 8 should support JPEG)
p.setPictureFormat(PixelFormat.JPEG);

//Set new camera parameters
try {
this.cam.setParameters(p);
}catch (Exception e) {
e.printStackTrace();
}

//Setup preview display on our surfaceViewHolder
try {
this.cam.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
e.printStackTrace();
}

//Start preview
this.cam.startPreview();
this.isPreviewRunning = true;
}

最佳答案

在btn_click.onclickListener上使用回调方法如下

_btn_click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ShutterCallback shutterCallBack = new ShutterCallback() {
@Override
public void onShutter() {}
};

PictureCallback pictureCallBack = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {}
};

PictureCallback pictureCallBackJPG = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {

Bitmap capturedBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

}
};
setFlashMode();
camera.takePicture(shutterCallBack, pictureCallBack,
pictureCallBackJPG);
showProgressDialog("Bitte warten", CameraCaptureActivity.this);
}
});

这段代码主线是

位图 capturedBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

在imageview中使用capturedBitmap.setImageBitmap(capturedBitmap);显示图像。

快乐编码

关于camera - camera.takePicture 后不显示图像审查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303618/

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