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_imatges [2021/10/20 10:39] enrique_mieza_sanchez [Exercici: fotos full-size a l'àrea externa] |
android_imatges [2022/12/19 20:15] (actual) enric_mieza_sanchez |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | ====== Tractament d'imatges en Android ====== | + | ====== Tractament d' |
| - | + | ||
| - | En aquest article veurem com capturar | + | |
| - | + | ||
| - | {{ android-camera.jpg? | + | |
| - | + | ||
| - | Referències: | + | |
| - | * Article [[Android]] a bytes.cat | + | |
| - | * [[https:// | + | |
| - | + | ||
| - | + | ||
| - | {{tag> #Dam #DamMp08 #DamMp08Uf2 # | + | |
| - | + | ||
| - | ===== Us de la càmera ===== | + | |
| - | Aquest [[https:// | + | |
| <WRAP important> | <WRAP important> | ||
| - | ULL! Mira el [[https:// | + | Segurament estàs buscant l' |
| - | + | ||
| - | Hauràs de canviar manualment l' | + | |
| </ | </ | ||
| - | |||
| - | El tutorial utilitza la //app// Camera del sistema operatiu. Així, no farem la foto dins la pròpia aplicació, sinó que la farà la Càmera (amb un '' | ||
| - | |||
| - | {{ android-camera-intent.jpg? | ||
| - | |||
| - | Tenim, dins el mateix tutorial, 2 aproximacions: | ||
| - | - **Miniatura**: | ||
| - | * Si cridem la **càmera amb un '' | ||
| - | * Té poca resolució, però és força senzill d' | ||
| - | * Addicionalment al què hi ha al tutorial, podeu afegir l' | ||
| - | - **Full-size**: | ||
| - | * Caldrà donar-li una indicació a la //app// Camera d'on guardar l' | ||
| - | * Necessitem un **'' | ||
| - | * [[https:// | ||
| - | * Un cop cridem la //app// Camera ella mateixa guardarà l' | ||
| - | * **ULL! Quan iniciem la càmera i li demanem que ens guardi la foto en // | ||
| \\ | \\ | ||
| - | |||
| - | ===== Exercici: captura bàsica d' | ||
| - | |||
| - | <WRAP todo> | ||
| - | Pràctica elemental de captura d' | ||
| - | * Crea un aplicació simple amb un '' | ||
| - | * Segueix les indicacions de l' | ||
| - | * Caldrà **implementar 2 funcions** a la teva '' | ||
| - | * **'' | ||
| - | * **'' | ||
| - | </ | ||
| - | |||
| - | <WRAP todo> | ||
| - | Persistència del // | ||
| - | * Amb el '' | ||
| - | * Crea un '' | ||
| - | * Obre un '' | ||
| - | * Utilitza '' | ||
| - | * Utilitza el **Android File Explorer** per visualitzar si el teu arxiu s'ha creat correctament (recorda prémer " | ||
| - | * Recupera la imatge sobre el '' | ||
| - | * La forma més simple és amb la funció '' | ||
| - | </ | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Persistència ===== | ||
| - | Segons [[https:// | ||
| - | - **Preferències compartides**: | ||
| - | - **Emmagatzematge Intern**: es guarda arxiu en la memòria interna del dispositiu, no es pot compartir entre aplicacions per seguretat. | ||
| - | * Els arxius es guarden a ''/ | ||
| - | - **Emmagatzematge " | ||
| - | * Els arxius es guarden a ''/ | ||
| - | - **BBDD SQLite** | ||
| - | - Connexió de xarxa (guardar en un servidor d' | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Emmagatzematge intern ===== | ||
| - | És el més segur ja que no es pot compartir entre aplicacions. La seguretat es manté sempre i quan no es faci //root// el dispositiu. | ||
| - | |||
| - | L' | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | |||
| - | <WRAP todo> | ||
| - | App de testeig per visualitzar els arxius i les carpetes d' | ||
| - | * Crea una nova aplicació amb un botó. | ||
| - | * Utilitza la funció [[https:// | ||
| - | * Escriu-hi una línia de text. | ||
| - | * Controla que tingui el seu '' | ||
| - | * Utilitza el **Device File Manager** d' | ||
| - | </ | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Emmagatzematge compartit ===== | ||
| - | Si utilitzem aquest espai, guardarem l' | ||
| - | |||
| - | Dins de l' | ||
| - | * **Zona de l' | ||
| - | * Ubicat a ''/ | ||
| - | * Dins d' | ||
| - | * Podem accedir a l' | ||
| - | * No requereix permisos d' | ||
| - | * **Zona compartida de '' | ||
| - | * Ubicat a ''/ | ||
| - | * Hi ha carpetes específiques (fixes) com DCIM, Documents, Downloads, etc. | ||
| - | * S'hi accedeix mitjançant l' | ||
| - | * Requereix permisos d' | ||
| - | |||
| - | En cas d' | ||
| - | <sxh xml> | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | ... | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | <WRAP tip> | ||
| - | Des de la API 18 en endavant (Android 4.4 KitKat) ja no cal demanar els permisos per escriure en l' | ||
| - | |||
| - | Si volem accedir a les imatges i arxius d' | ||
| - | </ | ||
| - | |||
| - | Als objectes [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | |||
| - | A totes dues funcions cal especificar-les a quina de les diferents carpetes volem emmagatzemar-ho. Els valors s' | ||
| - | |||
| - | |||
| - | ==== Exercici: fotos full-size a l' | ||
| - | |||
| - | <WRAP todo> | ||
| - | Seguirem el [[https:// | ||
| - | |||
| - | Modifica l' | ||
| - | |||
| - | * Fes un //commit// amb //tag// (per després fer una // | ||
| - | * Per activar que la càmera faci l' | ||
| - | * Caldrà utilitzar '' | ||
| - | * De moment no facis un nom d' | ||
| - | * Visualitza el resultat de la foto. Quin problema tenim? | ||
| - | </ | ||
| - | |||
| - | <WRAP todo> | ||
| - | Ajusta el tamany de la foto a la '' | ||
| - | </ | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Treballant amb XML i altres ===== | ||
| - | |||
| - | És pràctic utilitzar arxius XML per separar els camps de forma llegible. Hi ha diverses llibreries per llegir XML amb Java: | ||
| - | - [[https:// | ||
| - | - Aquest article en castellà explica força bé com [[http:// | ||
| - | - Potser et pot aclarir tb aquest [[https:// | ||
| - | - Algun [[https:// | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Exercicis ===== | ||
| - | |||
| - | Continuació de l' | ||
| - | |||
| - | <WRAP todo> | ||
| - | Continuant amb l' | ||
| - | - Després d' | ||
| - | - Capturem la imatge i la enregistrem a disc amb un nom aleatori o seqüencial. | ||
| - | - Assignem la imatge al nou item de rècord. | ||
| - | - Modifiquem el //layout// del '' | ||
| - | - Modifiquem adequadament el //adapter// per aconseguir que ens agafi la imatge de disc i la assigni a la '' | ||
| - | </ | ||
| - | |||
| - | \\ | ||
| - | |||
| - | En el cas que no estiguis desenvolupant l'app " | ||
| <WRAP todo> | <WRAP todo> | ||
| - | * Implementa una '' | + | Per aprendre a utilitzar |
| - | * Modifica el '' | + | |
| - | * Afegeix un botó per capturar imatges i enregistrar-les amb diferents noms. Cada cop que enregistris una d' | + | |
| - | * Actualitza la //view// de manera que es visualitzin els canvis. | + | |
| </ | </ | ||