Android Studio Camera Capture dengan Kualitas gambar Asli
Aplikasi untuk mendapatkan / capture kamera android Studio
di AndroidManifest.xml di tambahkan :
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera2" android:required="true"/>
di bawah tag penutup </activity> tambahkan kode berikut
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.namaproject.nsgo_r11103.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
perhatikan kode android:authorities="com.namaproject.nsgo_r11103.fileprovider",kode string ini akan digunakan di dalam class, klik alt+ender di string "@xml/file_paths", atau di folter res buat Directory dengan nama directory xml dan tambahkan file dengan namafile file_paths.xml dan isikan kode berikut :
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="my_images" path="Android/data/com.namaproject.nsgo_r11103/files/Pictures" />
</paths>
misalkan di XML kita buat :
1.tombol untuk membuka kamera
2.space untuk preview hasil kamera :
<Button
android:layout_width="match_parent"
android:text="Foto Kartu Keluarga"
android:textAllCaps="false"
android:id="@+id/getfotokk"
android:background="@drawable/btn_green2"
android:layout_height="wrap_content"/>
<ImageView
android:layout_width="match_parent"
android:id="@+id/spacefotokk"
android:background="@color/white"
android:layout_height="200dp"/>
Sekarang ke file class yang di class yagng akan di set kamera :
Button getfotokk;
ImageView spacefotokk;
/*foto kk */
getfotokknas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String filenamefotokk="fotokk";
File storageDirectory=getExternalFilesDir(Environment.DIRECTORY_PICTURES);
try {
File imageFilekk=File.createTempFile(filenamefotokk,"jpg",storageDirectory);
curentPhotopathfotokk=imageFilekk.getAbsolutePath();
Uri imageUlfotokk=FileProvider.getUriForFile(global_fapbaru.this,
"com.namaproject.nsgo_r11103.fileprovider",imageFilekk);
Intent intentfotokk=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intentfotokk.putExtra(MediaStore.EXTRA_OUTPUT,imageUlfotokk);
startActivityForResult(intentfotokk,1);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
}
}
});
/*foto kk */
note : di dalam syntax Uri imageUlfotokk=FileProvider.getUriForFile(global_fapbaru.this,
"com.nusumma.nsgo_r11103.fileprovider",imageFilekk); string ini harus sama dengan yang ada di AndroidManifest.xml di bagian android:authorities.
untuk menampilkan preview :
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1 && resultCode==RESULT_OK){
Bitmap fotokk=BitmapFactory.decodeFile(curentPhotopathfotokk);
spacefotokk.setImageBitmap(fotokk);
}
}
jika Image capure lebih dari 1 :
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1 && resultCode==RESULT_OK){
//ukuran sebenarnya foto
Bitmap bitmap=BitmapFactory.decodeFile(curentPhotopathfotoktp);
if(bitmap!=null){
spacefotoktp.setImageBitmap(bitmap);
}
Bitmap fotoktppasangan=BitmapFactory.decodeFile(curentPhotopathfotoktppasangan);
if(fotoktppasangan!=null){
spacefotoktppasangan.setImageBitmap(fotoktppasangan);
}
Bitmap fotokk=BitmapFactory.decodeFile(curentPhotopathfotokk);
if (fotokk!=null){
spacefotokknas.setImageBitmap(fotokk);
}
}
}
No comments
Saya sangat berterimakasih apabila sahabat sekalian bersedia untuk tidak meninggalkan spam dan meninggalkan komentar yang berhubungan dengan artikel di atas.