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 11:17] 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:// | + | |
- | * [[https:// | + | |
- | * [[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 [[https:// | ||
- | * 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 [[https:// | ||
- | </ | ||
- | |||
- | \\ | ||
- | |||
- | ===== 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' | ||
- | * Per tal que el codi anterior no peti caldrà que comentis o eliminis el què tens a '' | ||
- | * Visualitza el resultat de la foto. Quin problema tenim? | ||
- | </ | ||
- | |||
- | <WRAP todo> | ||
- | Ajusta el tamany de la foto a la '' | ||
- | |||
- | * Pots seguir les indicacions a la [[https:// | ||
- | * Probablement el codi per ajustar i mostrar la foto et peti si està al '' | ||
- | </ | ||
- | |||
- | \\ | ||
- | |||
- | ===== 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. | + | |
</ | </ | ||