• Terbaru

    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.