180 likes | 296 Views
Android Layouts. 2012 NCIT Summer School. Componentele Grafice. UI-ul este alcatuit din obiecte de tip View sau ViewGroup : View este clasa moştenită de widgets . ViewGroup este clasa moştenită de layouts . Sunt plasate într-un Activity. Widgets. Statice TextView ProgressBar
E N D
Android Layouts 2012 NCIT Summer School
Componentele Grafice • UI-ul este alcatuit din obiecte de tip View sau ViewGroup: • View este clasa moştenită de widgets. • ViewGroup este clasa moştenită de layouts. • Sunt plasate într-un Activity.
Widgets • Statice • TextView • ProgressBar • ImageView • Dinamice • EditText • Button • CheckBox • RadioButton • MapView
Layouts • Elemente de tip container (pot conţine alte View-uri) • Tipuri: • LinearLayout • RelativeLayout • TableLayout • ScrollLayout
Resurse • Se regasesc grupate in directorul res. • Imagini (drawable) • drawable-hdpi • drawable-mdpi • drawable-ldpi • Accesul din cod are loc folosind: R.drawable.nume
Resurse • Interfeţe grafice • layout • Accesul din cod are loc folosind: R.layout.nume • Constante • values
Constructia Layout-urilor • Din cod sau folosind un fişier xml. • Fişierul xml se ataseaza unui Activity în cod: this.setContentView (R.layout.nume); • Pentru a customiza un element dintr-o lista, se defineşte corespunzător fişierul xml şi se încarcă apoi asupra view-ului element: View element = inflater.inflate (R.layout.list_element_view, null);
Exemplu de fişier GUI XML • xmlns:android – necesar de definit doar pentru componenta radacina • android:layout_width şi android:layout_height sunt obligatorii • Valori: • fill_parent, wrap_content • px, dp, sp, mm, in, pt • android:id – necesar pentru utilizarea componentei in codul Java • @+id/button1 – în xml • R.id.button1 – în cod
Unităţi de Măsură pentru Dimensiuni • dp – Density Independent Pixels • Unitate de măsură abstractă, bazată pe densitatea de pixeli a ecranului. Unitatea este relativă la 160dpi. Deci 160dp va avea mereu 1 inch indiferent de densitatea ecranului. Se recomanda a fi aplicat asupra view-urilor pentru ca sistemul sa scaleze corespunzator dimensiunea acestora indiferent de marimea ecranului. • sp – Scale Independent Pixels • Analog cu dp, dar se recomanda a fi aplicat asupra fonturilor. • pt – Points • 1/72 dintr-un inch, bazată pe dimensiunea fizica a ecranului. • px – Pixeli • mm - Milimetri • in - Inches
Resurse în funcţie de Densitatea Pixelilor • ldpi – Low Density Screens • 120dpi • mdpi – Medium Density Screens • 160dpi • hdpi – High Density Screens • 240dpi • xhdpi – Extra High Density Screens • 230dpi • nodpi – folosit pe resurse de tip bitmap daca nu se doreste scalarea in functie de dimensiunea ecranului • Avem o scalare 3:4:6:8 intre cele cele 4 densitati. Deci un bitmap de 9x9 in ldpi va avea 12x12 în mdpi, 18x18 în hdpi şi 24x24 în xhdpi.
Meniu • Activat la apăsarea tastei Meniu. • Trebuie suprascrise metodele: • public booleanonCreateOptionsMenu(Meniu menu); • public booleanonOptionsItemSelected (MenuItem item) • Adăugarea unui meniu din cod: • menu.add(…); • Definirea meniului într-un fişier xml.