Want to fetch a image from camera and set it to the image view using intent in fragment
First add permission in your manifest file
<uses-permission android:name="android.permission.CAMERA"/>
then setOnClickListener for your image view
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int permissionCheck = ContextCompat.checkSelfPermission(getActivity(),
Manifest.permission.CAMERA);
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
pickImage();
} else {
ActivityCompat.requestPermissions(getActivity(),
new String[]{Manifest.permission.CAMERA},
2000);
}
}
});
choose the intent properly to open camera and click image and get back it to the fragment
private void pickImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,
1000);
}
and finally onActivityResult make sure you set it properly you can also use image loading library for more efficiency.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
//super method removed
if (resultCode == RESULT_OK) {
if (resultCode == Activity.RESULT_OK) {
Bitmap bmp = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
// convert byte array to Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0,
byteArray.length);
imageView.setImageBitmap(bitmap);
}
}
}