gpt4 book ai didi

java - 试图让自定义 android 相机工作

转载 作者:行者123 更新时间:2023-11-30 03:56:42 25 4
gpt4 key购买 nike

我开发了一个基本的相机,并正在努力让它发挥作用。

这是相机代码

package com.example.camera;

import java.io.IOException;

import android.content.Context;
import android.hardware.Camera;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class CameraView extends SurfaceView implements SurfaceHolder.Callback {

private SurfaceHolder holder;
private Camera camera;
Object size;

public CameraView(Context context) {

super(context);
holder = this.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
holder.addCallback(this);
}
public Camera getCamera(){
return camera;
}

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

Camera.Parameters params = camera.getParameters();//Getting paramaters.

if(size!=null){ //make sure we don't pull a NullException.
params.setPreviewSize(width, height);//gotta set the size, since we know it.
}
camera.setParameters(params);//gotta set the paramaters now.
camera.startPreview();//starting the preview.
}

public void surfaceCreated(SurfaceHolder arg0) {
try{
camera = Camera.open();//setting the camera up.
camera.setPreviewDisplay(holder);//making the display our current SurfaceHolder
} catch (IOException e){
e.printStackTrace();//printing out the error message if it happens.
}

}

public void surfaceDestroyed(SurfaceHolder arg0) {
camera.stopPreview();
camera.release();
camera = null;


}

}

现在我试图从我的主要方法调用相机,但我似乎无法让它工作

包 com.example.camera;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class main {
private static final int CAMERA_REQUEST = 1888;
private ImageView imageView;


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.imageView = (ImageView)this.findViewById(R.id.imageView1);
Button photoButton = (Button) this.findViewById(R.id.button1);
photoButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
cam = cv.getCamera(); //notice how we used that method? ;)
cam.takePicture(null,null,PictureCallback_);

}
});
}
Camera.PictureCallback PictureCallback_ = new Camera.PictureCallback() {


public void onPictureTaken(byte[] imageData, Camera c) {

InputStream is = new ByteArrayInputStream(imageData);


Bitmap bmp = BitmapFactory.decodeStream(is);
}
} ;

感谢任何帮助。尝试调用原始相机 Activity getCamera,然后拍摄照片并将其放入 imageView1 中。感谢任何帮助。

最佳答案

尝试在您的 onClick() 方法中执行此操作:

cam.autoFocus(new AutoFocusCallback(){
Camera.ShutterCallback shutterCallback = new Camera.ShutterCallback() {
public void onShutter() {
// If you want to play your own sound (otherwise, it plays the sound by default)
}
};

@Override
public void onAutoFocus(boolean arg0, Camera arg1) {
cam.takePicture(shutterCallback, null, PictureCallback_);
}
});

关于java - 试图让自定义 android 相机工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223295/

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