Risorse Android Filosofia Android

AA 2014/15 Risorse Android Programmazione di disposi8vi mobili -­‐ v1.0 1 Filosofia Android •  Esternalizzare le risorse dell'app per ges8rle separatamente –  immagini, stringhe, grafica, etc. •  Fornire risorse alterna8ve per disposi8vi diversi con configurazioni diverse –  forma, dimensione schermo, densità pixel , lingua, etc Programmazione di disposi8vi mobili -­‐ v1.0 Programmazione Java per Disposi8vi Mobili 2 1 AA 2014/15 Risorse alterna0ve posso specificare layout differen8 per schermi differen8 aggiungendo un file xml Programmazione di disposi8vi mobili -­‐ v1.0 3 Cartella delle risorse •  Le risorse sono contenute nella cartella res •  La cartella res con8ene soOocartelle il cui nome è definito –  tabella cartelle Programmazione di disposi8vi mobili -­‐ v1.0 Programmazione Java per Disposi8vi Mobili 4 2 AA 2014/15 Risorse Alterna0ve •  Per fornire risorse alterna8ve si creano delle soOocartelle di res con nomi defini8 •  Schema dei nomi –  <resources_name>-­‐<config_qualifier> •  resources_name: nome della cartella da tabella •  config_qualifier: configurazione specifica come sequenza ordinata di qualificatori •  Qualificatori –  lingua, densità, orientamento, etc. –  tabella Programmazione Java per Disposi8vi Mobili 5 Nomi so=ocartelle •  I qualificatori si concatenano con un traWno –  drawable-­‐en-­‐rUS-­‐land •  US-­‐English devices in landscape orienta8on •  Devono comparire nell'ordine della tabella –  Wrong: drawable-­‐hdpi-­‐port/ –  Correct: drawable-­‐port-­‐hdpi/ •  Le cartelle non si possono annidate –  Wrong: res/drawable/drawable-­‐en/. •  I valori sono case-­‐insensi8ve. •  Potete fornire un solo valore per qualificatore in una cartella Programmazione Java per Disposi8vi Mobili Programmazione Java per Disposi8vi Mobili 6 3 AA 2014/15 Scelta della risorsa La selezione avviene confrontando le risorse fornite con le caraOeris8che del device Eccezione: la screen density non è mai eleminata, si sceglie il più vicino Programmazione Java per Disposi8vi Mobili 7 Scelta della risorsa •  Risorse fornite drawable/ drawable-­‐en/ drawable-­‐fr-­‐rCA/ drawable-­‐en-­‐port/ drawable-­‐en-­‐notouch-­‐12key/ drawable-­‐port-­‐ldpi/ drawable-­‐port-­‐notouch-­‐12key/ •  Configurazione device Locale = en-­‐GB Screen orienta8on = port Screen pixel density = hdpi Touchscreen type = notouch Primary text input method = 12key Programmazione Java per Disposi8vi Mobili Programmazione Java per Disposi8vi Mobili 8 4 AA 2014/15 Eliminare contraddizioni •  Risorse fornite drawable/ drawable-­‐en/ drawable-­‐fr-­‐rCA/ drawable-­‐en-­‐port/ drawable-­‐en-­‐notouch-­‐12key/ drawable-­‐port-­‐ldpi/ drawable-­‐port-­‐notouch-­‐12key/ •  Configurazione device Locale = en-­‐GB Screen orienta8on = port Screen pixel density = hdpi Touchscreen type = notouch Primary text input method = 12key Programmazione Java per Disposi8vi Mobili 9 Scorrimento ed eliminazioni •  MMC, Language, Layout, SW, W, H, size, aspect, orient., etc. MMC non fa niente ma Language elimina chi non lo ha •  Risorse fornite drawable/ drawable-­‐en/ drawable-­‐en-­‐port/ drawable-­‐en-­‐notouch-­‐12key/ drawable-­‐port-­‐ldpi/ drawable-­‐port-­‐notouch-­‐12key/ •  Configurazione device Locale = en-­‐GB Screen orienta8on = port Screen pixel density = hdpi Touchscreen type = notouch Primary text input method = 12key Programmazione Java per Disposi8vi Mobili Programmazione Java per Disposi8vi Mobili 10 5 AA 2014/15 Tipi di risorse •  Risorse di 8po valore •  File come risorse –  eg. l’icona per lanciare la ac8vity principale Programmazione di disposi8vi mobili -­‐ v1.0 11 Risorse valori •  Sono contenute in file xml nella cartella res/values •  Sono dichiarate in fra tag specifici – 
– 
– 
– 
– 
<string>, <string-­‐array>, <integer-­‐array> <color> <drawable> <style> <dimension> Programmazione di disposi8vi mobili -­‐ v1.0 Programmazione Java per Disposi8vi Mobili 12 6 AA 2014/15 File come risorse •  Alcuni file sono risorse –  Non i valori contenu8 –  es. le immagini, i file xml •  I file vanno inseri8 in cartelle specifiche –  Le immagini in res/drawable –  Le icone in mipmap –  I file xml generici in res/xml –  raw con8ene file qualunque Programmazione di disposi8vi mobili -­‐ v1.0 13 Risorse di 0po Layout •  Ogni ac8vity ha almeno un layout –  sono contenu8 nella cartella layout •  Serve a posizionare degli “elemen8 grafici” sullo schermo –  le view –  Esempi -­‐ ResourceLayout // ResourceColor Programmazione di disposi8vi mobili -­‐ v1.0 Programmazione Java per Disposi8vi Mobili 14 7 AA 2014/15 Iden0ficatori per le risorse •  Ad ogni risorsa viene associato un “nome” •  Sintassi per iden8ficatori di risorse –  @[package:][+]type/name •  Esempi –  @string/app_name –  @+id/myBuOon –  @id/myBuOon •  Gli ID sono risorse par8colari per assegnare iden8fica8vi unici ai componen8 grafici Programmazione di disposi8vi mobili -­‐ v1.0 15 Programmazione Java per Disposi8vi Mobili 16 Esempi Programmazione Java per Disposi8vi Mobili 8 AA 2014/15 La classe R •  In compilazione ad ogni risorsa viene associata una costante di 8po int •  la classe R è contenuta nella cartella generated Programmazione di disposi8vi mobili -­‐ v1.0 17 Iden0ficatori in java getResources().getString(R.string.hello); •  id risorse 8po file –  R.<cartella>.<file name> •  es. R.xml.libri •  id risorse 8po valore –  R.<8po>.<nome> •  es. R.string.app_8tle Programmazione Java per Disposi8vi Mobili Programmazione Java per Disposi8vi Mobili 18 9 AA 2014/15 Esempi Programmazione Java per Disposi8vi Mobili 19 Le risorse di 0po dimension Programmazione Java per Disposi8vi Mobili Programmazione Java per Disposi8vi Mobili 20 10