Java Android摄像头打开,然后在新活动中打开捕获的图像
我想制作一个应用程序,当我按下某个按钮时,我想打开摄像头,然后拍摄图像,然后再拍摄 我想在一个新活动中打开此图像,除了两个按钮外,将此图像放入此新活动中,一个按钮用于删除此图像,另一个按钮用于将其保存在平板电脑的某个目录中 我使用代码打开cam:Java Android摄像头打开,然后在新活动中打开捕获的图像,java,android,eclipse,android-camera,Java,Android,Eclipse,Android Camera,我想制作一个应用程序,当我按下某个按钮时,我想打开摄像头,然后拍摄图像,然后再拍摄 我想在一个新活动中打开此图像,除了两个按钮外,将此图像放入此新活动中,一个按钮用于删除此图像,另一个按钮用于将其保存在平板电脑的某个目录中 我使用代码打开cam: Open_CAM.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent camera
Open_CAM.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
我不知道那之后我能做什么
需要帮忙吗
Open_CAM.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent photoPickerIntent= new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempFile());
photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
photoPickerIntent.putExtra("return-data", true);
startActivityForResult(photoPickerIntent,TAKE_PICTURE);}}
private Uri getTempFile()
{
File root = new File(Environment.getExternalStorageDirectory(), "ServiceMySigns");
if (!root.exists())
{
root.mkdirs();
}
final Calendar c = Calendar.getInstance();
int y = c.get(Calendar.YEAR);
int m = c.get(Calendar.MONTH);
int d = c.get(Calendar.DAY_OF_MONTH);
int h = c.get(Calendar.HOUR_OF_DAY);
int mi = c.get(Calendar.MINUTE);
//String filename=""+y+"-"+"-"+(m+1)+"-"+d+" "+h+":"+mi;
String filename=""+System.currentTimeMillis();
File file = new File(root,filename+".jpeg" );
muri = Uri.fromFile(file);
selectedImagePath=muri.getPath();
Log.v("take picture path",selectedImagePath);
return muri;
}
public void onActivityResult(int requestcode,int resultcode ,Intent data)
{
switch(requestcode)
{
case TAKE_PICTURE:
if(resultcode==RESULT_OK)
{
BitmapFactory.Options o = new BitmapFactory.Options();
o.inSampleSize=8;
Bitmap newImage = Bitmap.createScaledBitmap(BitmapFactory.decodeFile(selectedImagePath,o),
150,
150,
false);}}}
在onActivityResult中获得位图后,可以通过intent将该位图发送到另一个活动
在onActivityResult中获得位图后,您可以通过intent将该位图发送到另一个活动。下面的代码将帮助您从相机拍摄照片并将图像设置到下一个活动
private void takePicture() {
cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, IMAGE_CAPTURE);
}
// Receive the result from the start Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("onActivityResult", "we r in onActivityResult");
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case IMAGE_CAPTURE:
File dir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File output = new File(dir, "camerascript.png");
cPath = output.getAbsolutePath();
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(output));
Intent capIntent = new Intent(yourcurrentActivity.this,
yournextActivity.class);
capIntent.putExtra("gallery", cPath);
startActivity(capIntent);
break;
default:
break;
}
}
}
之后,将intnet额外数据输入到yournextAactivity
,您将在其中设置捕获的图像
ImageView imageView = (ImageView)findViewById(R.id.imgView);
String fileString = getIntent().getStringExtra("gallery");
imageView.setImageBitmap(BitmapFactory.decodeFile(fileString));
下面的代码将帮助您从相机拍摄照片,并将图像设置为下一个活动
private void takePicture() {
cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, IMAGE_CAPTURE);
}
// Receive the result from the start Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("onActivityResult", "we r in onActivityResult");
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case IMAGE_CAPTURE:
File dir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File output = new File(dir, "camerascript.png");
cPath = output.getAbsolutePath();
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(output));
Intent capIntent = new Intent(yourcurrentActivity.this,
yournextActivity.class);
capIntent.putExtra("gallery", cPath);
startActivity(capIntent);
break;
default:
break;
}
}
}
之后,将intnet额外数据输入到yournextAactivity
,您将在其中设置捕获的图像
ImageView imageView = (ImageView)findViewById(R.id.imgView);
String fileString = getIntent().getStringExtra("gallery");
imageView.setImageBitmap(BitmapFactory.decodeFile(fileString));