-----------------------------------Androidmanifest--------------------------
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-------------------Activity------------------
package com.loggedin.mmf.myapplicationcameraimagetake;
import android.Manifest;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import static android.Manifest.permission.CAMERA;
public class MainActivity extends AppCompatActivity {
private Button buttonImage;
public static int SELECT_FROM_GALLERY = 2;
public static int CAMERA_PIC_REQUEST = 0;
private static final int REQUEST = 1337;
public static final int PERMISSION_REQUEST_CODE = 1111;
Uri mImageCaptureUri;
Bitmap productImageBitmap;
ImageView profilePic;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonImage = (Button) findViewById(R.id.buttonImage);
profilePic = (ImageView) findViewById(R.id.profilePic);
buttonImage.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
selectImage();
}
});
}
private void selectImage() {
final CharSequence[] options = {"From Camera", "From Gallery", "Cancel"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Please choose an Image");
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int item) {
if (options[item].equals("From Camera")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkCameraPermission())
cameraIntent();
else requestPermission();
} else cameraIntent();
} else if (options[item].equals("From Gallery")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkGalleryPermission())
galleryIntent();
else requestGalleryPermission();
} else galleryIntent();
} else if (options[item].equals("Cancel")) {
dialog.dismiss();
}
}
});
builder.create().show();
}
private void galleryIntent() {
Intent intent = new Intent().setType("image/*").setAction(Intent.ACTION_PICK);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_FROM_GALLERY);
}
private void cameraIntent() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
private void requestPermission() {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{CAMERA}, PERMISSION_REQUEST_CODE);
}
private void requestGalleryPermission() {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST);
}
private boolean checkCameraPermission() {
int result1 = ContextCompat.checkSelfPermission(MainActivity.this, CAMERA);
return result1 == PackageManager.PERMISSION_GRANTED;
}
private boolean checkGalleryPermission() {
int result2 = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE);
return result2 == PackageManager.PERMISSION_GRANTED;
}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST && resultCode == Activity.RESULT_OK && null != data) {
Uri cameraURI = data.getData();
productImageBitmap = (Bitmap) data.getExtras().get("data");
profilePic.setImageBitmap(productImageBitmap);
profilePic.setVisibility(View.VISIBLE);
} else if (requestCode == SELECT_FROM_GALLERY && resultCode == Activity.RESULT_OK && null != data) {
Uri galleryURI = data.getData();
profilePic.setImageURI(galleryURI);
}
}
}
----------------activity.xml-----------------
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
<ImageView android:layout_width="match_parent" android:layout_height="300dp" android:id="@+id/profilePic"/>
<Button android:id="@+id/buttonImage" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Picture"/>
</LinearLayout>
</RelativeLayout>