Java Android摄像头打开,然后在新活动中打开捕获的图像

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

我想制作一个应用程序,当我按下某个按钮时,我想打开摄像头,然后拍摄图像,然后再拍摄

我想在一个新活动中打开此图像,除了两个按钮外,将此图像放入此新活动中,一个按钮用于删除此图像,另一个按钮用于将其保存在平板电脑的某个目录中

我使用代码打开cam:

    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));