gpt4 book ai didi

android - 如何在 Android 上使用 onPictureTaken 返回位图?

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

我正在为 Android 构建一个 API,开发人员可以在其中使用我的类拍照。但是,如何使用 onPictureTaken 返回位图。请看我的代码:

这是 mainActivity 上的一个按钮:

button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// onPictureTaken does not return nothing
// so, how can I get a bitmap from takePicture?
Bitmap mBitmap = CameraUtils.takePicture();
}
});

这是我的类 CameraUtils:

public class CameraUtils implements Camera.PictureCallback {

private Camera mCamera = null;
private SurfaceTexture surfaceTexture = new SurfaceTexture(0);

public Bitmap takePicture() {

try {
mCamera = Camera.open(1);

Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> sizes = params.getSupportedPictureSizes();
params.setPictureFormat(ImageFormat.JPEG);
params.setPictureSize(sizes.get(0).width, sizes.get(0).height);
mCamera.setParameters(params);

mCamera.setPreviewTexture(surfaceTexture);
mCamera.startPreview();

Log.i("MyCamera", "before takePicture");

new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mCamera.takePicture(null, null, CameraUtils.this);
}
}, 1000);


//how to return a bitmap from here??
//how to wait for onPictureTaken??
return ?????

} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap mBitmap = BitmapFactory
.decodeByteArray(data, 0, data.length);

//
// how to return something here??
//
//
// What logic I have to do?
//

//
//
// return mBitmap;
//
}
}

我需要做什么才能使用我的类方法获取一张位图?

谢谢。

最佳答案

你不知道。您要做的是在 onPictureTaken 中以您想要的任何方式更新 UI。你不会从中返回任何东西。

关于android - 如何在 Android 上使用 onPictureTaken 返回位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30338387/

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