Tutorial Mengambil Gambar Lewat Kamera di Android

Hi guys, sudah lama saya tidak memposting tutorial di sini. Okay, kali ini saya akan membuat tutorial yang lumayan banyak ditanyakan oleh pembaca, yaitu cara bagaimana mengambil gambar atau foto di Android, menggunakan kamera bawaan atau native.

Untuk pengambilan gambar sendiri, ada dua cara yang bisa digunakan. Yaitu menggunakan kamera bawaan Android, atau membuat kelas kamera sendiri yang akan mengakses fungsi kamera dan mengambil gambar di Android. Cara kedua membutuhkan coding yang lebih advanced, karena itu cara paling simpel untuk mengakses kamera di Android adalah menggunakan cara pertama. Kita akan belajar cara mengambil gambar lewat kamera bawaan Android dan menampilkannya pada ImageView;

Take Picture Using Camera

Oke, pertama-tama kita buat sebuah project Android baru pada Eclipse. Setelah itu kita buat sebuah XML layout yang berisi satu tombol, dan satu ImageView bernama activity_camera.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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="id.web.twoh.cameratutorial.CameraActivity" >

    <ImageView
        android:layout_alignParentTop="true"
        android:id="@+id/iv_camera"
        android:layout_width="400dp"
        android:layout_height="400dp"
        android:contentDescription="@string/hello_world" />

    <Button
        android:id="@+id/bt_camera"
        android:layout_below="@id/iv_camera"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ambil Gambar"
        />

</RelativeLayout>

Setelah itu, untuk meluncurkan kamera, kita perlu menggunakan suatu Intent khusus :

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

Dan kita juga perlu membuat sebuah unique request code yang menandakan bahwa aplikasi kita yang meminta request camera.

private static final int CAMERA_REQUEST_CODE = 7777;

Kemudian, kita perlu menangkap balikan dari request tersebut, pada method onActivityResult() :

switch (requestCode) {
			case(CAMERA_REQUEST_CODE) :
				if(resultCode == Activity.RESULT_OK)
				{
					// do something
				}
			break;
		}

Garis besarnya kira-kira seperti itu, kode lengkap pada Activity adalah sebagai berikut :

CameraActivity.java

package id.web.twoh.cameratutorial;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class CameraActivity extends Activity {

	private Button btCamera;
	private ImageView ivCamera;
	private static final String TAG = CameraActivity.class.getSimpleName();
	private static final int CAMERA_REQUEST_CODE = 7777;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_camera);

		btCamera = (Button) findViewById(R.id.bt_camera);
		ivCamera = (ImageView) findViewById(R.id.iv_camera);

		btCamera.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				//intent khusus untuk menangkap foto lewat kamera
				Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
				startActivityForResult(intent, CAMERA_REQUEST_CODE);
			}
		});
	}

	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		switch (requestCode) {
			case(CAMERA_REQUEST_CODE) :
				if(resultCode == Activity.RESULT_OK)
				{
					// result code sama, save gambar ke bitmap
					Bitmap bitmap;
					bitmap = (Bitmap) data.getExtras().get("data");
					ivCamera.setImageBitmap(bitmap);
				}
			break;
		}
	}

}

Yang terakhir, tambahkan camera permission pada Android Manifest.

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

Simpel bukan? Setelah gambar didapat, kalian bisa memasukkannya ke dalam objek Bitmap yang bisa dimodifikasi. 🙂

Demo

Ketika meluncurkan kamera :

Gambar dari Kamera

Gambar dari Kamera

Kemudian kita klik shutter camera dan ambil gambar, akan langsung kembali ke aplikasi

Gambar dari kamera masuk ke aplikasi

Gambar dari kamera masuk ke aplikasi

Ketika tombol “Ambil Gambar” diklik, akan meluncurkan kamera kembali seperti di atas.





Download aplikasi kami di Google Play Store


Tutorial Menarik Lainnya :

8 Comments

  1. Andrew April 29, 2014
    • Hafizh Herdi Naufal May 1, 2014
  2. hafiz muhammad noer May 24, 2014
  3. Ary Ceno October 7, 2014
  4. aji February 9, 2015
  5. O'om February 13, 2018
  6. Hafizh Herdi February 13, 2018

Leave a Reply

Do NOT follow this link or you will be banned from the site!