Android Camera

548
SHARES
2.5k
VIEWS

Camera is mainly used to capture picture and video. We can control the camera by using methods of camera api.

Android provides the facility to work on camera by 2 ways:

  1. By Camera Intent
  2. By Camera API

Basic classes of Camera Intent and API

There are mainly four classes that we are going to discuss.

  1. Intent
  2. Camera
  3. SurfaceView
  4. MediaRecorder

Intent

By the help of 2 constants of MediaStore class, we can capture picture and video without using the instance of Camera class.

  1. ACTION_IMAGE_CAPTURE
  2. ACTION_VIDEO_CAPTURE

Camera

It is main class of camera api, that can be used to take picture and video.

SurfaceView

It represents a surface view ore preview of live camera.

MediaRecorder

It is used to record video using camera. It can also be used to record audio files as we have seen in the previous example of media framework.

Example by camera intent

In this article, we are writing the simple code to capture image using camera and displaying the image using imageView.

Create an imageView and one button in activity_main.xml file.

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity" >  
  
   <Button  
        android:id="@+id/button1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentBottom="true"  
        android:layout_centerHorizontal="true"  
        android:text="Take a Photo" >  
    </Button>  
  
    <ImageView  
        android:id="@+id/imageView1"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:layout_above="@+id/button1"  
        android:layout_alignParentTop="true"  
        android:src="@drawable/ic_launcher" >  
    </ImageView>  
</RelativeLayout>

Activity Class

Let’s write the code to capture image using camera and displaying it on the image view.

package com.example.simplecamera;  
  
import android.app.Activity;  
import android.content.Intent;  
import android.graphics.Bitmap;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.View;  
import android.widget.Button;  
import android.widget.ImageView;  
  
public class MainActivity extends Activity {  
     private static final int CAMERA_REQUEST = 1888;  
     ImageView imageView;  
     public void onCreate(Bundle savedInstanceState) {  
  
         super.onCreate(savedInstanceState);  
         setContentView(R.layout.activity_main);  
  
         imageView = (ImageView) this.findViewById(R.id.imageView1);  
         Button photoButton = (Button) this.findViewById(R.id.button1);  
  
         photoButton.setOnClickListener(new View.OnClickListener() {  
  
         @Override  
         public void onClick(View v) {  
              Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);  
              startActivityForResult(cameraIntent, CAMERA_REQUEST);  
         }  
        });  
       }  
  
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
      if (requestCode == CAMERA_REQUEST) {  
       Bitmap photo = (Bitmap) data.getExtras().get("data");  
       imageView.setImageBitmap(photo);  
      }  
   }  
  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        getMenuInflater().inflate(R.menu.activity_main, menu);  
        return true;  
    }  
  
}

Output Result:

Android Camera demo image 1
Muhammad Mubeen

Muhammad Mubeen

Mubeen is a full-stack web & mobile app developer who is very proficient in MEAN.js, Vue, Python, Ionic 4, Flutter, Firebase, ROR, and PHP. He has created multiple mobile and web applications. He is very passionate about sharing his knowledge.

Comments 1

  1. Ibrahim says:

    I want learn a programming language

Leave a Reply

Your email address will not be published. Required fields are marked *

Trending