How to Get Fetch camera image inside imageview on button click with runtime permission.
In this tutorial we are going to create an android application with imageview with button widget and also with Request runtime camera permission inbuilt code. So when the app starts then it will ask about Runtime permission to access mobile phone camera. After giving the permission all you have to do is click the button and it will start the device camera and after capturing image it will automatically set the picture into ImageView. So here is the complete step by step tutorial for Capture Image from Camera and Display in ImageView android Programmatically.
How to Capture Image from Camera and Display in ImageView android Programmatically.
Please add CAMERA permission inside your AndroidManifest.xml file .
<uses-permission android:name="android.permission.CAMERA" />
Code for MainActivity.java file.
package com.android_examples.captureimagecamera_android_examplescom; import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button button ; ImageView imageView ; Intent intent ; public static final int RequestPermissionCode = 1 ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button); imageView = (ImageView)findViewById(R.id.imageView); EnableRuntimePermission(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 7); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 7 && resultCode == RESULT_OK) { Bitmap bitmap = (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(bitmap); } } public void EnableRuntimePermission(){ if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.CAMERA)) { Toast.makeText(MainActivity.this,"CAMERA permission allows us to Access CAMERA app", Toast.LENGTH_LONG).show(); } else { ActivityCompat.requestPermissions(MainActivity.this,new String[]{ Manifest.permission.CAMERA}, RequestPermissionCode); } } @Override public void onRequestPermissionsResult(int RC, String per[], int[] PResult) { switch (RC) { case RequestPermissionCode: if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(MainActivity.this,"Permission Granted, Now your application can access CAMERA.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"Permission Canceled, Now your application cannot access CAMERA.", Toast.LENGTH_LONG).show(); } break; } } }
Code for activity_main.xml layout file.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.android_examples.captureimagecamera_android_examplescom.MainActivity" android:orientation="vertical" android:background="#FFF9C4"> <ImageView android:layout_width="fill_parent" android:layout_height="300dp" android:layout_centerHorizontal="true" android:id="@+id/imageView" /> <Button android:text="Click here to capture image using camera" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/button" /> </LinearLayout>
Code for AndroidManifest.xml file.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android_examples.captureimagecamera_android_examplescom"> <uses-permission android:name="android.permission.CAMERA" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Screenshots: