我用Java编写了一个程序,它接收图像文件并操作图像。现在我正在尝试访问相机,这样我就可以拍摄照片并将其提供给图像处理程序,但是我不知道如何做到这一点。我已经阅读了有关camera类的信息以及如何请求权限,但我不知道如何实际拍摄照片。如果任何人有任何关于我应该从哪里开始的建议,或者如果他们知道一个好的教程,我将非常感谢。谢谢!
发布于 2010-09-24 12:54:02
谷歌是你最好的朋友,这里有一些教程:
Using the camera
How-To Program The Google Android Camera To Take Pictures
Take Picture from Camera Emulator
camera
首先编辑您的AndroidManifest.xml,添加摄像头权限:
<uses-permission android:name=”android.permission.CAMERA”/>必须打开和关闭摄像头服务:
Camera camera = Camera.open();
//Do things with the camera
camera.release();您可以设置摄像头设置,例如:
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);要拍照:
private void takePicture() {
camera.takePicture(shutterCallback, rawCallback, jpegCallback);
}
ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
// TODO Do something when the shutter closes.
}
};
PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] _data, Camera _camera) {
// TODO Do something with the image RAW data.
}
};
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] _data, Camera _camera) {
// TODO Do something with the image JPEG data.
}
};不要忘记将相机布局添加到主布局xml中。
发布于 2010-09-24 13:41:37
你有很多方法可以做到这一点……其中一个更好的方式,我认为是简短和简单的是在按钮上点击,你可以调用意图,打开你的内置相机视图…以下是示例代码...
public class CameraDemo extends Activity {
Button ButtonClick;
int CAMERA_PIC_REQUEST = 2;
int TAKE_PICTURE=0;
Camera camera;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ButtonClick =(Button) findViewById(R.id.Camera);
ButtonClick.setOnClickListener(new OnClickListener (){
@Override
public void onClick(View view)
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if( requestCode == CAMERA_PIC_REQUEST)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image =(ImageView) findViewById(R.id.PhotoCaptured);
image.setImageBitmap(thumbnail);
}
else
{
Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG);
}
}
}..............................................................
仔细看看,如果你有什么问题,尽管问……
rakesh
发布于 2012-11-28 18:50:41
有两种方法可以为你的android应用程序拍照
1)使用意图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);2)创建自定义摄像头活动。为此,您需要执行以下步骤
* Detect and Access Camera
* Create a Preview Class
* Build a Preview Layout
* Capture and Save Files
* Release the Camera您还可以参考以下链接:
http://developer.android.com/guide/topics/media/camera.html http://developer.android.com/reference/android/hardware/Camera.html
https://stackoverflow.com/questions/3783124
复制相似问题