Kemampuan Akhir Yang Direncanakan

  • Mahasiwa mampu membuat aplikasi yang memanfaatkan hardware kamera pada mobile Phone.
  • Mahasiswa mampu mengambil foto dari kamera pada mobile phone dan menyimpannya ke SD card.

Modul

Pada modul ini akan membahas tentang camera api, dengan tujuan agar mahasiswa:

  • Mengetahui cara untuk mengakses Camera pada perangkat android
  • Dapat mengimplementasikan Camera API untuk membuat aplikasi android

Android mendukung penggunaan kamera dan fitur kamera yang tersedia pada perangkat mobile/handheld, sehingga kita dapat mengambil gambar atau video melalui aplikasi yang dikembangkan. Pada modul ini akan dibahas cara untuk mengambil gambar.

Ada beberapa hal yang perlu diperhatikan sebelum membuat aplikasi yang menggunakan Camera API, antara lain:

  • Ketersediaan Camera -> karena kita akan menggunakan kamera pada perangkat mobile yang menggunakan aplikasi yang kita kembangkan, maka kita pastikan aplikasi terinstal pada perangkat mobile yang memiliki kamera. Dengan cara mendeklarasikannya di android manifest, dengan cara
Camera Permission
<uses-permission android:name="android.permission.CAMERA" /> Jika aplikasi yang dikembangkan akan menggunakan Camera pada Android Device maka harus menulis permission ini pada manifest.
Camera Feature
<uses-feature android:name="android.hardware.camera" /> Aplikasi menggunakan kamera harus menulis camera feature pada persmission. Untuk feature dari kamera lebih detail dapat dilihat pada link (https://developer.android.com/guide/topics/manifest/usesfeature-element.html#hw-features). Salah satu feature camera yang dapat digunakan adalah autofocus, penggunaan flash pada kamera.
Storage Permission
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> Jika aplikasi kita akan menyimpan gambar atau video pada SDCard (External Storage), harus menulis permission ini pada manifest
  • Hal kedua yang harus diperhatikan ketika mengembangkan aplikasi menggunakan Camera API adalah apakah aplikasi yang dikembangkan hanya berguna untuk mengambil gambar atau aplikasi yang dikembangkan menggunakan fitur atau tampilan yang telah kita custom. Jika akan mengcustom fitur pada android dapat dilihat pada link (https://developer.android.com/guide/topics/media/camera.html#custom-camera)

Praktikum Camera API untuk Mengambil Gambar

  • Buat project baru dengan nama "Camera API"
  • Pada AndroidManifest.xml tambahkan 2 code seperti dibawah
      <uses-feature android:name="android.hardware.camera" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
  • Buat tampilannya pada activity_main.xml dengan menambahkan tommbol dan image view, tambahkan code seperti dibawah
      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          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=".MainActivity">
          <Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Take Picture"
              android:id="@+id/take_picture"
              android:layout_alignParentBottom="true"
              android:layout_centerHorizontal="true" />
          <ImageView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:id="@+id/captured_photo"
              android:layout_above="@id/take_picture"
              android:layout_alignParentTop="true"
              android:layout_alignParentLeft="true"
              android:contentDescription="captured image"
              android:layout_alignParentStart="true" />
      </RelativeLayout>
    
  • Langkah terakhir buka MainActiviy.java dan masukan code di bawah ini

    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
    
        private ImageView imageHolder;
        private final int requestCode = 1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            imageHolder = (ImageView)findViewById(R.id.captured_photo);
            Button capturedImageButton = (Button)findViewById(R.id.take_picture);
            capturedImageButton.setOnClickListener( new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent photoCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(photoCaptureIntent, requestCode);
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(this.requestCode == requestCode && resultCode == RESULT_OK){
                Bitmap bitmap = (Bitmap)data.getExtras().get("data");
                imageHolder.setImageBitmap(bitmap);
            }
        }
    }
    

    Tugas

  • Lakukan praktikum di atas!

  • Buatlah hasil capture bisa tersimpan ke sd card!

results matching ""

    No results matching ""