Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
android_camera [2024/12/09 15:26] enric_mieza_sanchez [Foto full-size i FileProvider : donant accés a l'espai privat] |
android_camera [2024/12/16 15:53] (actual) enric_mieza_sanchez [Tutorial Kotlin] |
||
|---|---|---|---|
| Línia 133: | Línia 133: | ||
| - Utilitza també les funcions d' | - Utilitza també les funcions d' | ||
| - Transforma el '' | - Transforma el '' | ||
| - | - Llançar el '' | + | - Llançar el '' |
| - | // creem arxiu | + | // creem arxiu on volem guardar la imatge |
| - | | + | |
| - | // li donem permisos amb FileProvider pq pugui escriure l'app camera | + | ).toString() + "/tmpImg.jpg" |
| - | | + | File photoFile = new File( filePath |
| - | "com.example.android.fileprovider", | + | // li donem permisos amb FileProvider pq hi pugui escriure l'app camera |
| - | photoFile); | + | |
| + | // igual que la que heu d' | ||
| + | | ||
| + | "com.enricmieza.gallery25.fileprovider", | ||
| + | photoFile); | ||
| // Create Intent | // Create Intent | ||
| Línia 147: | Línia 151: | ||
| cameraResultLauncher.launch(intent); | cameraResultLauncher.launch(intent); | ||
| </ | </ | ||
| - | - Quan rebem el resultat a la callback '' | + | - Quan rebem el resultat a la callback '' |
| + | @Override | ||
| + | public void onActivityResult(ActivityResult result) { | ||
| + | if (result.getResultCode() == AppCompatActivity.RESULT_OK) { | ||
| + | // display foto | ||
| + | ImageView imageView = findViewById(R.id.imageView); | ||
| + | Intent data = result.getData(); | ||
| + | Bundle extras = data.getExtras(); | ||
| + | // si ve un bitmap, pinto el bitmap | ||
| + | if( extras!=null ) { | ||
| + | Bitmap imageBitmap = (Bitmap) extras.get(" | ||
| + | imageView.setImageBitmap(imageBitmap); | ||
| + | return; | ||
| + | } else { | ||
| + | // si no em retorna res, agafo la photoURI | ||
| + | // que hem configurat pel FileProvider | ||
| + | if( photoURI!=null ) { | ||
| + | imageView.setImageURI(photoURI); | ||
| + | return; | ||
| + | } | ||
| + | Log.e(" | ||
| + | } | ||
| + | } | ||
| + | }</ | ||
| <WRAP todo> | <WRAP todo> | ||
| Línia 172: | Línia 199: | ||
| ===== Imatge de la càmera dins la nostra App ===== | ===== Imatge de la càmera dins la nostra App ===== | ||
| + | |||
| + | ==== Tutorial Java (medium.com) ==== | ||
| Els objectes '' | Els objectes '' | ||
| Línia 221: | Línia 250: | ||
| </ | </ | ||
| + | \\ | ||
| + | |||
| + | ==== Tutorial Kotlin ==== | ||
| + | |||
| + | Podem seguir les [[https:// | ||
| + | |||
| + | Aquest tutorial empra [[https:// | ||
| + | |||
| + | I com no, no es pot seguir al peu de la lletra, cal adaptar algunes coses. En concret al pas 2 "Crear el projecte" | ||
| + | |||
| + | - Punt 1: les biblioteques de codi< | ||
| + | dependencies { | ||
| + | // ... | ||
| + | |||
| + | val camerax_version = " | ||
| + | implementation(" | ||
| + | implementation(" | ||
| + | implementation(" | ||
| + | implementation(" | ||
| + | implementation(" | ||
| + | implementation(" | ||
| + | }</ | ||
| + | - El punt 2 de les '' | ||
| + | compileOptions { | ||
| + | sourceCompatibility = JavaVersion.VERSION_11 | ||
| + | targetCompatibility = JavaVersion.VERSION_11 | ||
| + | } | ||
| + | </ | ||
| + | - El punt 3 queda així< | ||
| + | buildFeatures { | ||
| + | viewBinding = true | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | La resta queda igual. Cal anar amb compte de llegir bé els passos i entendre' | ||
| + | |||
| + | <WRAP todo> | ||
| + | Implementa el [[https:// | ||
| + | |||
| + | Redueix la '' | ||
| + | |||
| + | {{ android: | ||
| + | |||
| + | |||
| + | </ | ||
| \\ | \\ | ||