![]() |
| contoh penggunaan kamera |
Kamera adalah sensor yang paling terlihat dan paling sering digunakan dalam sebuah device android. Kamera adalah titik jual untuk sebagian besar, pembeli, dan kemampuan kamera semakin baik untuk tiap generasinya.
Aplikasi pengolahan citra biasanya bekerja pada sebuah citra setelah citra tersebut diambil, namun aplikasi lainnya, seperti augmented reality, menggunakan kamera secara langsung(real-time) dengan lapisan-lapisan aplikasi. Terdapat dua cara untuk mengakses kamera dari sebuah aplikasi. Pertama dengan mendeklarasikan intent secara implicit.
Intent implicit meluncurkan interface kamera default:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivity(intent);
cara berikutnya lebih mengangkat kelas Kamera, yang mana menyediakan lebih banyak fleksibilitas dalam setting. Cara ini membuat sebuah interface kamera yang sudah diubah, yang mana menjadi focus dalam contoh berikut. untuk mengakses perangkat keras Kamera membutuhkan permission eksplisit dalam file XML AndroidManifest:
<uses-permission android:name="android.permission.CAMERA" />yang mana lebih lengkapnya bisa dilihat dalam contoh berikut.
Mengembangkan Kamera
Kendali terhadap kamera diabstraksikan kedalam berbagai komponen dalam sistem android:
- Class Camera digunakan untuk mengakses hardware kamera
- Class Camera.Parameters menunjukkan parameter kamera seperti ukuran gambar, kualitas gambar, mode flash, dan cara untuk memberikan lokasi Global Positioning System(GPS).
- Method Camera Preview menentukan tampilan output kamera dan menyalakan streaming preview kamera pada layar.
- Class SurfaceView digunakan sebagai permukaan gambar pada tingkat terendah dari hirarki view(tampilan) sebagai tempat pemegang(placeholder) untuk menampilka preview kamera.
Sebelum menjelaskan bagaimana komponen tersebut digabungkan, struktur layout akan ditunjukkan. Layout utama ditunjukkan pada kode 7.1 dan memasukkan sebuah SurfaceView untuk memegang output kamera.
Kode 7.1 res/layout/main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<SurfaceView android:id="@+id/surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</SurfaceView>
</LinearLayout>
Sebuah interface kendali bisa ditambahkan di atas view ini dengan menggunakan sebuah layout yang terpisah, seperti yang ditunjukkan pada kode 7.2 berikut. layout ini memuat tombol pada tengah bawah dari layar untuk mengambil gambar.



