Anda di halaman 1dari 11

MEMBUAT APLIKASI KAMERA SEDERHANA DI ANDROID STUDIO

Kamera adalah alat paling populer dalam aktivitas fotografi. Nama ini didapat dari camera
obscura, bahasa Latin untuk “ruang gelap”, mekanisme awal untuk memproyeksikan tampilan di
mana suatu ruangan berfungsi seperti cara kerja kamera fotografis yang modern, kecuali tidak ada
cara pada waktu itu untuk mencatat tampilan gambarnya selain secara manual mengikuti jejaknya.
Dalam dunia fotografi, kamera merupakan suatu peranti untuk membentuk dan merekam suatu
bayangan potret pada lembaran film. Pada kamera televisi, sistem lensa membentuk gambar pada
sebuah lempeng yang peka cahaya. Lempeng ini akan memancarkan elektron ke lempeng sasaran
bila terkena cahaya. Selanjutnya, pancaran elektron itu diperlakukan secara elektronik. Dikenal
banyak jenis kamera potret.

Pada jaman sekarang, kamera bisa kita dapat pada smartphone dengan kualitas fotonya
tidak jauh beda dengan kamera DSLR. Fungsi kamera pada smartphone juga begitu banyak untuk
proses scan seperti barcode. Dengan adanya media yang di dapatkan oleh kamera, terbentuklah
sebuah Multimedia yang kombinasi dari dua buah media berupa input dan output. Media yang di
kombinasikan seperti foto, video, audio, animasi dan lain-lain.

Disini saya akan memberikan tutorial untuk membuat aplikasi fungsi kamera sederhana di Android
Studio.

Memulai membuat Project

Pertama-tama kita membuat project baru untuk membuat aplikasi Camera di Android Studio.
Masuk ke menu File → New → New Project
Setelah itu kita pilih yang Empty Activity

Kemudian masukan nama aplikasinya dengan nama CameraApps atau bebas, dengan Language
Kotlin dan jangan lupa centang This project will support instant apps lalu klik Finish
Setelah kita membuat project tadi akan muncul dua file pada area kerja Android Studio yaitu
activiry_main.xml dan MainActivity.kt
Kemudian kita akan masuk ke file activity_main.xml untuk mendesain tampilannya terlebih
dahulu, tapi sebelum itu kita harus memberikan izin untuk mengakses sebuah kamera pada
perangkat aplikasi yang kita buat. Caranya kita masuk ke directory aplikasi app → Manifest →
AndroidManifest.xml, seperti gambar di bawah ini.

Pada file Android Manifest, kita tambah script di bawah ini untuk memberikan izin akses kamera
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Selesai memberikan izin, lalu kita mendesain tampilan aplikasinya. Buka file activity_main.xml
lalu ketikkan script di bawah ini

File activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/photoDisplay"
android:background="@color/black"/>

<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/takePhoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_camera_alt_black_24dp"
android:tint="@android:color/white"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_margin="20dp"/>

</RelativeLayout>
Pada sintaks android:src="@drawable/ic_camera_alt_black_24dp", ini adalah file vector
asset yang bisa kita buat di Android Studio nya dengan masuk ke menu File → New → Vector
Asset seperti gambar di bawah ini.

Lalu akan muncul gambar berikut, kemudian klik 2 kali gambar yang disamping clipart dan
otomatis akan terbuka semua clipart yang sudah disediakan tinggal kita pilih sesuai yang
dibutuhkan.
Jika file activity_main.xml sudah selesai kita masuk ke file MainActivity.kt untuk menjalankan
fungsi kameranya.
File MainActivity.kt
Ikuti script di bawah ini
import kotlinx.android.synthetic.main.activity_main.*
import java.text.SimpleDateFormat
import java.util.*

class MainActivity : AppCompatActivity(), View.OnClickListener {

private val permission:Array<String> = arrayOf<String>(


Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)

private var imageUri: Uri? = null


private val permissionCode = 12
private val cameraCode = 123

private val permissionChoose = 13


private val chooseCode = 1234

takePhoto.setOnClickListener(this)

override fun onClick(p0: View?) {

when(p0?.id){

R.id.takePhoto -> {

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

if(ContextCompat.checkSelfPermission(this.applicationContext,
permission[0]) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this.applicationContext,
permission[1]) == PackageManager.PERMISSION_GRANTED){

startCamera()
} else{

ActivityCompat.requestPermissions(this, permission, permissionCode)

} else{

startCamera()

R.id.choosePhoto -> {

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

if(ContextCompat.checkSelfPermission(this.applicationContext,
permission[2]) == PackageManager.PERMISSION_GRANTED){

chooseImage()

} else{

ActivityCompat.requestPermissions(this, permission, permissionCode)

} else{

chooseImage()

}
private fun chooseImage(){

val intent = Intent(Intent.ACTION_PICK,


MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
startActivityForResult(intent, chooseCode)

private fun startCamera(){

val timestamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())

val values = ContentValues()


values.put(MediaStore.Images.Media.TITLE, "IMG_" + timestamp + ".jpg")
values.put(MediaStore.Images.Media.DESCRIPTION, "Di ambil dari kamera")
imageUri =
contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)

val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)


cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
startActivityForResult(cameraIntent, cameraCode)

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>,


grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)

when(requestCode){
permissionCode -> {
if(grantResults.size > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED){

startCamera()

} else{
Toast.makeText(this, "Permission denied!", Toast.LENGTH_SHORT).show()
}
}

permissionChoose -> {
if(grantResults.size > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED){
startCamera()

} else{
Toast.makeText(this, "Permission denied!", Toast.LENGTH_SHORT).show()
}
}
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {


super.onActivityResult(requestCode, resultCode, data)

if(resultCode == Activity.RESULT_OK){

if(requestCode == cameraCode){

photoDisplay.setImageURI(imageUri)

} else{

imageUri = data?.getData() as Uri


photoDisplay.setImageURI(imageUri)

}
Jika sudah, kita jalankan aplikasinya maka akan tampil seperti output yang di bawah ini
Refrensi
- https://id.wikipedia.org/wiki/Kamera
- https://pengertiandefinisi.com/pengertian-multimedia-dan-jenis-multimedia/
-

Anda mungkin juga menyukai