Tuesday, 6 October 2015

Save Photo from Camera in Android, Fix NullPointerException

https://www.youtube.com/watch?v=IMomzqwTuKA


package com.kishlay.raj.vbicam;
import android.content.Intent;import android.graphics.Bitmap;import android.media.MediaScannerConnection;import android.net.Uri;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Switch;import android.widget.TextView;import android.widget.Toast;
import java.io.File;import java.io.FileOutputStream;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    EditText name,emailId,lname;    public static final int MEDIA_TYPE_IMAGE = 1,MEDIA_TYPE_VIDEO=2;    Button button;    ImageView im;    Intent intent;    TextView tv1;    static final int cameraData=0;    private Uri fileUri;    Bitmap bm;    String First_name,Last_name,email;    Uri pictureUri;    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initialize();    }

    private void initialize() {
        name=(EditText)findViewById(R.id.name);        lname=(EditText)findViewById(R.id.last);        emailId=(EditText)findViewById(R.id.email);        button=(Button)findViewById(R.id.button);        im=(ImageView)findViewById(R.id.imageView);        button.setOnClickListener(this);    }


    @Override    public void onClick(View v) {
        switch(v.getId())
        {
            case R.id.button:
                /*i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                //File file = getOutputMediaFile(1); // create a file to save the image                 fileUri = Uri.fromFile(file);                i.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);                startActivityForResult(i,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);*/
                intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                First_name=name.getText().toString();                Last_name=lname.getText().toString();                email=emailId.getText().toString();                File pictureDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);                String pictureName=First_name+"_"+Last_name+"_"+email+".jpg";                File imgFile=new File(pictureDirectory,pictureName);                 pictureUri=Uri.fromFile(imgFile);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri); // set the image file name
                // start the image capture Intent                startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, pictureUri);                sendBroadcast(intent);
                break;        }


    }

    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);        if(requestCode==CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE)
        {
            if(resultCode==RESULT_OK)
            {
                //set text that image has been saved                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, pictureUri);                sendBroadcast(intent);                Toast t= Toast.makeText(MainActivity.this,"Image Saved :)",5000);                t.setGravity(Gravity.CENTER, 0, 0);                t.show();            }
            else            {
                // try again message                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, pictureUri);                sendBroadcast(intent);                Toast t= Toast.makeText(MainActivity.this,"Plz try again :(",5000);                t.setGravity(Gravity.CENTER, 0, 0);                t.show();            }
        }
    }
}

No comments:

Post a Comment