Anteprima parziale del testo
Scarica Programmazione mobile-Manuale Android e più Guide, Progetti e Ricerche in PDF di Programmazione Avanzata solo su Docsity!
4/26/25, 4:15 PM ‘about:blank Manuale Android Linee guida per superare lo scritto di Android. 1. Come definire Il layout di un'applicazione. 2. Quali sono i Layout più comuni 3. Come creare il layout che ti viene richiesto.. 4.11 file Manifesti 5. Sistema multilingua di Androi 6. Dimensioni in Android.. 7. ListView e Adapter. 8. Ciclo di vita di un'activity.. 9. Backstack. 10. Intent. 16. Meccanismo di layout. 11. PEFMESSI svenne 24 12. Threa 5 13. Fragments. 7 14. Data Storage. 8 15. Animazioni 9 2 3 17. Motionevent 18. Sensori..... scr 33 19. Toast customizzato 20. Content Providers, Broadcast, Service: 1/35 4/26/25, 4:15 PM ‘about:blank Manuale Android 1. Come definire il layout di un’applicazione. Il layout di un'applicazione può essere definito sia staticamente tramite file XML (metodo dichiarativo) sia nel codice sorgente, ovvero nelle classi Java (metodo programmatico). Con un file XML vengono costruiti layout statici. Il vantaggio di questo metodo è la netta separazione tra il codice dell’applicazione e il suo layout. Questo metodo ha però come svantaggio il fatto che non è possibile creare un layout dinamico. In modo programmatico, ossia tramite istruzione nel programma che saranno eseguite a runtime, è possibile costruire layout dinamici. Il grande svantaggio di questo metodo è che non vi è una separazione tra il codice dell’applicazione e il suo layout, ciò comporta una gestione più complicata rispetto al metodo dichiarativo. 2. Quali sono i Layout più comuni. - LinearLayout: contiene un insieme di elementi che distribuisce in maniera sequenziale dall'alto verso il basso o da sinistra a destra. È un layout molto semplice e piuttosto naturale per i display di smartphone e tablet. - GridLayout: altro layout piuttosto semplice. Inquadra gli elementi in una tabella e quindi è particolarmente adatto a mostrare strutture regolari suddivise in righe e colonne. - RelativeLayout: sicuramente il più flessibile e moderno. Adatto a disporre in maniera meno strutturata gli elementi. Gli elementi al suo interno, infatti, vengono posizionati in relazione l’uno all’altro o rispetto al contenitore, permettendo un layout fluido che si adatta bene a display diversi. - ConstraintLayout: simile al RelativeLayout. Permette di specificare la posizione dei suoi elementi attraverso dei vincoli. Utile per evitare una gerarchia di layout innestati troppo profonda. Molto comoda quando si lavora con l’editor grafico. 2/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 4/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 5/35 4/26/25, 4:15 PM ‘about:blank Manuale Android 5. Sistema multilingua di Android. Stringe, array, e tanti altri tipi di dati che utilizziamo all’interno dell’applicazione possono essere dichiarate all’interno di una risorsa XML nella cartella res/values/. In questo modo possiamo “mappare” qualsiasi stringa che compare nell’applicazione all’interno delle risorse res/values. La cartella values identifica la lingua di default dell’applicazione. Quando un'applicazione viene avviata, la piattaforma Android individua la lingua con cui è impostato il dispositivo ed in base ad essa carica la cartella values-xx dove xx è il suffisso della lingua. Se ad esempio in un'applicazione abbiamo definito una serie di stringhe all’intero della risorsa res/values/string.xml e vogliamo avere il supporto per la lingua italiana, inglese e francese, basta tradurre le stringhe di questo file e inserirle rispettivamente nelle sottocartelle: - res/values/strings.xml: default (ad esempio inglese), - res/values-it/strings.xml: lingua italiana, - res/values-fr/strings.xml: lingua francese, - res/values-xx/strings.xml: la lingua corrispondente al suffisso xx. Se non viene individuata la sottocartella values-xx relativa alla lingua del dispositivo, allora viene caricata la cartella di default values. 7/35 4/26/25, 4:15 PM ‘about:blank Manuale Android 6. Dimensioni in Android. Android permette al programmatore di specificare le dimensioni usando varie unità di misura: - dp (density-independent pixels) - sp (scale-independent pixels) - pt, points (1/72 di pollice) - px, pixel reali - mm, millimetri - in, pollici (inches) Vengono utilizzate diverse unità di misura per adattare i widget a diversi dispositivi. Dp, sp, pt sono screen density ovvero dipendono da quanti pixel ci sono nel display (dpi), in particolare tra dp e sp l’unica differenza è che gli sp scalano in base alla preferenza dell’utente sulla grandezza del font. Px, mm, in rappresentano la grandezza reale del display. L’unita dpi dipende dal rapporto tra risoluzione e dimensione dello schermo. Si tratta quindi del numero di pixel presenti in un pollice. Ad esempio, pensiamo a due display di eguale grandezza, il primo con risoluzione 320*480 pixel e il secondo 480*800 pixel; il primo avrà un numero di DPI inferiori al secondo. | dp nascono per semplificare la vita agli sviluppatori, in quanto permette di mantenere le proporzioni delle interfacce e non solo, ad esempio: prendiamo un'icona di grandezza 50 pixel, e proviamo a inserirla prima su un display con 160 DPI e in seguito su un display di 240 DPI. Nel primo caso l’icona sarà più grande mentre nel secondo più piccola. Questo avviene perché lo schermo con maggiore densità avrà pixel più ravvicinati. Per ovviare a questo problema ed ottenere delle interfacce che siano uguali su tutti i device, si utilizzano i DP, come dice il nome sono “indipendenti”. Questo significa che: 1 DP è uguale ad 1 pixel su uno schermo di 160 DPI. Per tutte le altre densità i pixel verranno scalati seguendo questa formula: 1 pixel = dp * (dpi / 160); In questa maniera sarà possibile non riscrivere applicazioni per tutti i 8/35 4/26/25, 4:15 PM Manuale Android Successivamente dobbiamo inserire il widget ListView all’interno del layout che la ospiterà: ‘about:blank 10/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 11/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 13/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 14/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 16/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 17/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 19/35 4/26/25, 4:15 PM Manuale Android ‘about:blank 20/35