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>
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
takePhoto.setOnClickListener(this)
choosePhoto.setOnClickListener(this)
}
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()
}
}
}
}
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)
}
}
}