title: Saving an image from ImageView into internal storage
body: <p>I have created an ImageView and I can see the preview of the camera and load the captured image into the ImageView and I wanted to store the image into a directory in my internal memory. I have referred many posts and tried but I couldn't find my image in my internal memory.</p>
  
  <p>This is the code I have used:</p>
  
  <pre class="lang-java prettyprint-override"><code>package com.example.shravan.camera;
  
  import android.content.Context;
  import android.content.ContextWrapper;
  import android.content.Intent;
  import android.content.pm.PackageManager;
  import android.graphics.Bitmap;
  import android.graphics.drawable.BitmapDrawable;
  import android.net.Uri;
  import android.os.Bundle;
  import android.provider.MediaStore;
  import android.support.v7.app.AppCompatActivity;
  import android.util.Log;
  import android.view.View;
  import android.widget.Button;
  import android.widget.ImageView;
  
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.IOException;
  
  public class MainActivity extends AppCompatActivity {
  
      private final String TAG = "abc";
  
      static final int REQUEST_IMAGE_CAPTURE =1 ;
      ImageView iv;
      Uri imageUri;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          Button btn = (Button)findViewById(R.id.myB);
          iv = (ImageView) findViewById(R.id.myIV);
          //disable the button if the user has no camera
          if (!hasCamera()) {
              btn.setEnabled(false);
          }
      }
  
      public boolean hasCamera() {
          return getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);
      }
  
      //on click event handler that launches the camera
      public void launchCamera(View v) {
          Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
          startActivityForResult(i, REQUEST_IMAGE_CAPTURE);
      }
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (requestCode == REQUEST_IMAGE_CAPTURE &amp;&amp; resultCode == RESULT_OK) {
              imageUri=data.getData();
              iv.setImageURI(imageUri);;
          }
      }
  
      public void SaveFile(View v) {
          BitmapDrawable drawable = (BitmapDrawable) iv.getDrawable();
          Bitmap bitmap = drawable.getBitmap();
  
          print("Creating cw");
          ContextWrapper cw = new ContextWrapper(this.getApplicationContext());
          print("Creating dir");
          File directory = cw.getDir("ImagesDir", Context.MODE_PRIVATE);
          print("Created dir" + directory);
          File mypath = new File(directory,"myImagesDGS.jpg");
          print("path is" + mypath);
  
          FileOutputStream fos = null;
          try {
              print("creating fos");
              fos = new FileOutputStream(mypath);
              print("Compressing bitmap");
              bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              try {
                  fos.close();
                  print("fos closed");
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
  
      private void print(String str){
          Log.d(TAG, str);
      }
  
  }
  </code></pre>
  
  <p>I have made many log messages to debug and I got one path which I couldn't find in my phone.</p>
  
  <p>This is the logcat:</p>
  
  <blockquote>
    <p>08-07 21:47:37.089 11030-11030/com.example.shravan.camera D/abc:
        Creating cw 08-07 </p>
    
    <p>21:47:37.089 11030-11030/com.example.shravan.camera
        D/abc: Creating dir 08-07  </p>
    
    <p>21:47:37.099
        11030-11030/com.example.shravan.camera D/abc: Created
        dir/data/user/0/com.example.shravan.camera/app_ImagesDir 08-07</p>
    
    <p>21:47:37.099 11030-11030/com.example.shravan.camera D/abc: path
        is/data/user/0/com.example.shravan.camera/app_ImagesDir/myImagesDGS.jpg</p>
    
    <p>08-07 21:47:37.099 11030-11030/com.example.shravan.camera D/abc:
        creating fos </p>
    
    <p>08-07 21:47:37.099 11030-11030/com.example.shravan.camera
        D/abc: Compressing bitmap</p>
    
    <p>08-07 21:47:42.589
        11030-11030/com.example.shravan.camera D/abc: fos closed</p>
  </blockquote>
  
  <p>Is there anything I need to check and I should change? Please help!</p>