Friday, November 27, 2020

How to click camera programmatically in android

 How to click camera programmatically in android

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

   xmlns:android="http://schemas.android.com/apk/res/android"

   android:orientation="vertical"

   android:layout_width="match_parent"

   android:gravity="center_horizontal"

   android:layout_height="match_parent">

   <TextView

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Click the below button to take photo from camera"/>

   <ImageView

      android:id="@+id/imageView"

      android:scaleType="centerCrop"

      android:layout_width="300dp"

      android:layout_height="400dp"

      android:src="@drawable/ic_image_black"

      android:layout_marginTop="16dp"/>

   <Button

      android:id="@+id/btnCaptureImage"

      android:text="Capture Image"

      android:layout_width="match_parent"

      android:layout_height="wrap_content" />

</LinearLayout>

Step 3 − Add the following code to src/MainActivity.java

public class MainActivity extends AppCompatActivity {

   private static final int PERMISSION_CODE = 1000;

   Button mCaptureBtn;

   ImageView mImageView;

   Uri imageUri;

   private int IMAGE_CAPTURE_CODE = 1001;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      mImageView = findViewById(R.id.imageView);

      mCaptureBtn = findViewById(R.id.btnCaptureImage);

      mCaptureBtn.setOnClickListener(new

      View.OnClickListener() {

         @Override

         public void onClick(View v) {

            if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){

               if (checkSelfPermission(Manifest.permission.CAMERA)==PackageManager.PERMISSION_GRANTED(Manifest.permission.CAMERA).PERMISSION_DENIED){

                  String[] permission = {Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE};

                  requestPermissions(permission,PERMISSION_CODE);

               } else{

                  openCamera();

               }

            }

         }

      });

   }

   private void openCamera() {

      ContentValues values = new ContentValues();

      values.put(MediaStore.Images.Media.TITLE, "New Picture");

      values.put(MediaStore.Images.Media.DESCRIPTION, "From the Camera");

      imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

      Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

      startActivityForResult(cameraIntent, IMAGE_CAPTURE_CODE);

   }

   public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

      switch (requestCode){

         case PERMISSION_CODE:{

            if (grantResults.length > 0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){

               openCamera();

            } else {

               Toast.makeText(this, "Permissiondenied...", Toast.LENGTH_SHORT).show();

            }

         }

      }

   }

   @Override

   protected void onActivityResult(int requestCode, intresultCode, Intent data) {

      if (resultCode == RESULT_OK){

         mImageView.setImageURI(imageUri);

      }

   }

}

Step 4 − Add the following code to androidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.com.sample">

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

   <uses-permission android:name="android.permission.CAMERA"/>

   <application

      android:allowBackup="true"

      android:icon="@mipmap/ic_launcher"

      android:label="@string/app_name"

      android:roundIcon="@mipmap/ic_launcher_round"

      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>

How to click camera programmatically in android

No comments:

Post a Comment