Anda di halaman 1dari 6

Cara Membuat Aplikasi Android Yang Bisa Mengambil Gambar

Dengan Kamera Smartphone

Hallo teman-teman, pada artikel kali ini, saya akan menuliskan tentang bagaimana membuat suatu
aplikasi android yang di dalamnya bisa terhubung ke kamera smartphone untuk mengambil
gambar.
Disini kita akan menggunakan tools yaitu Android Studio.
Langkah-langkahnya yaitu :
1. Buka aplikasi Andorid Studio
2. Lalu klik new project
3. Setelah itu pilih Empty Activity
4. Lalu buat nama project dan centang pada “this project will support instant app”
5. Lalu pertama pada file activity_main.xml, gunakan layout RelativeLayout dengan
komponen ImageView dan ImageButton, dimana imageview digunakan sebagai layar saat
pengambilan gambar, dan imageButton digunakan untuk tombol pengambilan gambar,
pada imageButton background, didapat dari file di drawable yang bernama btn_back.
Code programnya sebagai berikut:
<?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="#000000"/>

<ImageButton
android:id="@+id/takePhoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_camera_alt_black_24dp"
android:tint="@color/white"
android:padding="10dp"
android:background="@drawable/btn_back"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_margin="20dp"/>

<ImageButton
android:id="@+id/choosePhoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_camera_black_24dp"
android:tint="@color/white"
android:padding="10dp"
android:background="@drawable/btn_back"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_margin="20dp"/>

</RelativeLayout>

6. Setelah itu buat file btn_back.xml yang dibuat di res->drawable. Code programnya sebagai
berikut :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/colorAccent"></solid>
<corners android:radius="100dp"></corners>

</shape>

7. Pada file Main_activity.kt, code programnya sebagai berikut :


package com.baiqnurul.camera_app

import android.Manifest.permission.CAMERA
import android.content.ContentValues
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.view.View
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.contentValuesOf
import kotlinx.android.synthetic.main.activity_main.*
import java.text.SimpleDateFormat
import java.util.*
import java.util.jar.Manifest

class MainActivity : AppCompatActivity(), View.OnClickListener {


private val permission: Array<String> = arrayOf<String>(
android.Manifest.permission.CAMERA,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
android.Manifest.permission.READ_EXTERNAL_STORAGE
)

private var imageUri: Uri? = null


private val permissionCode = 12
private val cameraCode = 123
private val permissionChoose = 13
private val chooseCode = 1234
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

takePhoto.setOnClickListener(this)
choosePhoto.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
camera")
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){
chooseImage()
} 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 == cameraCode){
photoDisplay.setImageURI(imageUri)
// val path = getPathFromURI(imageUri!1)
//Toast.makeText(this, path, Toast.LENGTH_SHORT).show()
}
else{
imageUri = data?.getData() as Uri
photoDisplay.setImageURI(imageUri)
}
}
}

8. Pada file AndroidManifest.xml, tambahkan permission untuk mengambil gambar,


menggunakan kamera, dan membaca gambar., dengan code :
<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"/>
9. Lalu jalankan program dengan cara klik tombol segitiga pada ujung kanan atas lembar
kerja android studio, dan pilih akan menjalankan aplikasi dari emulator atau smartphone.
10. Setelah itu akan tampil aplikasi, dan coba untuk mengambil gambar.
Hasil
11. Selesai
Sekian langkah-langkah untuk membuat aplikasi android dengan menghubungkan ke kamera
smartphone. Terimakasih

Anda mungkin juga menyukai