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_multimedia [2025/12/10 15:06] enric_mieza_sanchez [Android Multimèdia] |
android_multimedia [2025/12/10 20:16] (actual) enric_mieza_sanchez [Exercicis] |
||
|---|---|---|---|
| Línia 3: | Línia 3: | ||
| Per multimèdia s' | Per multimèdia s' | ||
| - | {{ android: | + | {{ android: |
| Tot el relacionat amb sensors és susceptible d' | Tot el relacionat amb sensors és susceptible d' | ||
| Línia 87: | Línia 87: | ||
| {{ android: | {{ android: | ||
| - | Per a realitzar | + | Per a realitzar |
| + | - Afegir un arxiu '' | ||
| + | - Declarar el '' | ||
| + | - Al codi de l''' | ||
| + | - Engegar l'App Camera amb la '' | ||
| + | ==== Arxius XML ==== | ||
| + | <code xml res/ | ||
| + | <?xml version=" | ||
| + | <paths xmlns: | ||
| + | < | ||
| + | <!-- si volguessim una carpeta de l' | ||
| + | </ | ||
| + | </ | ||
| - | <WRAP todo> | ||
| - | **Exercici take photo full size** | ||
| - | Segueix la **part "Take full size photo" | + | <code xml AndroidManifest.xml> |
| + | < | ||
| - | **Recorda ha de ser la versió en anglès**, la traducció al castellà té errors. | + | < |
| + | android: | ||
| + | android: | ||
| + | android: | ||
| + | android: | ||
| + | < | ||
| + | android: | ||
| + | android: | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| - | **App v0.3** - Afegeix | + | ==== Codi MainActivity.kt ==== |
| + | |||
| + | Preparació del recurs compartit i inici de l'App Camera: | ||
| + | |||
| + | <code kotlin MainActivity.kt> | ||
| + | val photoButton = findViewById< | ||
| + | photoButton.setOnClickListener { | ||
| + | // Assegurem que existeix la carpeta de fotos (igual que al FileProvider) | ||
| + | val carpeta = File(filesDir.toString()," | ||
| + | carpeta.mkdirs() | ||
| + | |||
| + | // Preparem l' | ||
| + | val file = File(filesDir.toString()," | ||
| + | fotoUri = FileProvider.getUriForFile(this, | ||
| + | " | ||
| + | |||
| + | // engeguem l'App Camera | ||
| + | takeFullPic.launch(fotoUri) | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | I la // | ||
| + | |||
| + | <code kotlin MainActivity.kt> | ||
| + | val takeFullPic = registerForActivityResult( | ||
| + | ActivityResultContracts.TakePicture()) { success | ||
| + | if (success) { | ||
| + | // netejar imatge i pintar nova | ||
| + | imageView.setImageDrawable(null) | ||
| + | imageView.setImageURI(fotoUri) | ||
| + | } else { | ||
| + | // notifiquem error | ||
| + | Toast.makeText(this, | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Àrea privada i àrea compartida ===== | ||
| + | |||
| + | L' | ||
| + | |||
| + | L' | ||
| + | * Pictures | ||
| + | * Music | ||
| + | * Movies | ||
| + | * **Android/ | ||
| + | |||
| + | On '' | ||
| + | |||
| + | Els directoris on s'emmagatzema la info son diferents: | ||
| + | |||
| + | ^ ^ Funció d' | ||
| + | | Arxius privats de l' | ||
| + | | Arxius compartits de l'app | getExternalFilesDir( null ) | / | ||
| + | | Arxius compartits de fotos | Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES ) | / | ||
| + | |||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Àrea compartida d' | ||
| + | |||
| + | Si volem fer servir | ||
| + | |||
| + | Al '' | ||
| + | <code xml file_paths.xml> | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | A '' | ||
| + | <code kotlin MainActivity.kt> | ||
| + | val carpeta = File(getExternalFilesDir(null).toString()," | ||
| + | ... | ||
| + | val file = File(getExternalFilesDir(null).toString()," | ||
| + | </ | ||
| + | |||
| + | Utilitzeu el **Device Explorer** del Android Studio per visualitzar les carpetes i arxius. | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Carpetes compartides generals públiques ==== | ||
| + | |||
| + | Si volem fer servir l' | ||
| + | |||
| + | Al '' | ||
| + | <code xml file_paths.xml> | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | A '' | ||
| + | Environment.DIRECTORY_PICTURES))'' | ||
| + | <code kotlin MainActivity.kt> | ||
| + | val carpeta = File(Environment.getExternalStoragePublicDirectory( | ||
| + | Environment.DIRECTORY_PICTURES).toString()," | ||
| + | ... | ||
| + | val file = File(Environment.getExternalStoragePublicDirectory( | ||
| + | Environment.DIRECTORY_PICTURES).toString()," | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Exercicis ===== | ||
| + | |||
| + | <WRAP todo> | ||
| + | **Captura de fotos // | ||
| + | Implementa la captura de fotos // | ||
| </ | </ | ||
| Línia 106: | Línia 233: | ||
| **Exercici MyGallery** | **Exercici MyGallery** | ||
| - | Implementa | + | Implementa |
| - | **App v0.4** - Implementa la visualització de les fotos que anem prenent en l' | + | Visualització |
| </ | </ | ||