How to save images from Camera in Android to specific folder?

71,053

add this code before calling camera activity,

Uri uriSavedImage=Uri.fromFile(new File("/sdcard/flashCropped.png"));
camera.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(camera, 1);
Share:
71,053
Admin
Author by

Admin

Updated on February 19, 2020

Comments

  • Admin
    Admin about 4 years

    Basically, what I want to do is allow the user to make their own folder and then go to an activity that contains a button to launch the camera.

    From there I want to be able to launch the camera and save the camera images into the newly created folder.

    I am having trouble with last part of saving the camera images into the newly created folder.

    Here is my Code :

     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        Button b = (Button) findViewById(R.id.button1);
        b.setOnClickListener(new OnClickListener() {
    
    
            EditText text = (EditText)findViewById(R.id.editText1); 
            EditText text2 = (EditText)findViewById(R.id.editText2);
    
    
    
            @Override
            public void onClick(View v) {
    
                final String name = text.getText().toString();
                final String placeName = text2.getText().toString(); 
    
                String place = placeName.substring(0,3);
                String direct = name + place ;
    
                File folder = new File("/sdcard/CameraTest/" + direct + "/");
                folder.mkdirs();
    
                Intent myIntent = new Intent(CameraTestActivity.this, Press.class);
                myIntent.putExtra("key", "/sdcard/CameraTest/" + direct + "/");
                startActivity(myIntent);
    
            }
        });
    

    From here I transition into this activity:

    public class Press extends Activity {
    
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.afterenter);
            final String direct = this.getIntent().getStringExtra("key");
    
    
            // TODO Auto-generated method stub
            Button p = (Button) findViewById(R.id.button2);
            p.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
    
                    Intent camera= new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    
                    startActivityForResult(camera, 1);
    
                }
            });
    
    
    
        Button np = (Button) findViewById(R.id.button3);
        np.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                Intent next = new Intent(Press.this, CameraTestActivity.class);
                startActivity(next);
            }
        });         
        }
    }
    

    Please tell me how to save the images from the camera into the newly created folder.

    I want the user to be able to take several pictures and then save these several pictures into that specific folder.

  • Andrew S
    Andrew S almost 11 years
    What is "output" and why should that work? Should one not use a constant of some kind?
  • Teodor
    Teodor almost 11 years
    MediaStore.EXTRA_OUTPUT is the constant
  • Kuntal Basu
    Kuntal Basu over 10 years
    CAPTURE_IMAGE_ACTIVITY is nothing but a integer, you can use simple interger value of your choice say 99/7/67 anything. It is used to check for the request code. For example 1 activity can start many other activities but every request should have unique request code, which can be checked on returning of every activity inside onActivityResult in your main activity.Check request code to know which activity has returned.
  • stdout
    stdout over 8 years
    Not working. There is definetely something wrong with EXTRA_OUTPUT.
  • SAYE
    SAYE about 6 years
    Edit your answer from Confusing problems . say camera is intent variable in your code .