1

I'm currently trying to integrate a camera into my android app and save the picture on my device; however, when I take a picture, I can't proceed (the app works, but the camera shot freezes meaning I can take another picture and go back, but can't confirm). I was wondering if you guys could help. Please explain this as simply as possible because I'm very new at programming for android. Thanks everyone!

public class PhotoCapture extends Activity {
int TAKE_PHOTO_CODE = 0;
public static int count=0;
public static File newfile;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.photocapture);



Button capture = (Button) findViewById(R.id.takepicture);
capture.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        ContextWrapper cw = new ContextWrapper(getBaseContext());
         newfile = cw.getDir("test.jpg", Context.MODE_PRIVATE);

        try {
            newfile.createNewFile();
        } catch (IOException e) {}       

        Uri outputFileUri = Uri.fromFile(newfile);


        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

      startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
    }
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {


         uri = data.getData().toString();
        Log.d("CameraDemo", "Pic saved");

        Intent myview = new Intent(this, Finalpiece.class);
        startActivity(myview);


     }
}
}

1 Answers1

1
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
 <uses-permission android:name="android.permission.CAMERA"/>

Use this permission before...

private static final int REQ_CAPTURE_CAPTURE__IMAGE = 0;
    private String imagePath;

/**
     * Start camera activity.
     */
    protected void startCameraActivity() {
        String imageDirectory = Environment.getExternalStorageDirectory()
        + File.separator + "surbeyImg";
        File imageDirectory = new File(imageDirectory);

        if (!(imageDirectory.exists())) {
            imageDirectory.mkdir();
        }

        String imagePath = imageDirectory + File.separator + imgName+".jpg");   

        File file = new File(imagePath);   
        Uri outputFileUri = Uri.fromFile(file);

        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
        startActivityForResult(intent, REQ_CAPTURE_CAPTURE__IMAGE);
    }

    protected void onActivityResult(int requestCode, int resultCode,
            Intent imageReturnedIntent) {

        switch (requestCode) {

        case REQ_CAPTURE_CAPTURE__IMAGE:

            if (resultCode == RESULT_OK) {
                Intent intentImg = new Intent(CameraDemo.this, ShowImg.class);             
                intentImg.putExtra("imagePath",imagePath);         
                startActivity(intentImg); 

            }

            break;

        default:
            break;

        }
    }

after this use this code ...thanks

RINK
  • 620
  • 5
  • 15