Android ohjelmointi Tunti 2 Käyttöliittymät ja resurssit
Debug Log luokka mahdollistaa debug tulostamisen ADB:n kautta konsoliin (esim. DDMS:ään) esim. Log.println(Log.INFO, TAG, Tämä on println ); Voidaan kutsua myös lyhyemmällä Log.i(TAG, Tämä on lyhyempi println ); TAGi on itse määriteltävissä oleva merkintä jolla viestit voi erottaa LogCat näkymässä. Voi käyttää esim. sovelluksen nimeä tai ajettavan luokan nimeä jne. Vastaa system.outia Javassa Vaatii android.util.log kirjaston
R.Java Eclipse osaa generoida automaattisesti Muissa työkaluissa generoidaan käännöksen yhteydessä Resurssi-indeksi joka helpottaa määriteltyjen resurssien kutsua koodausvaiheessa Syntax: R.<resurssiluokka>.<resurssinimi> R.layout.main viittaa resurssiin res/layout kansiosta jonka nimi on main.xml R.menu.select_menu viittaa resurssiin res/menu kansiosta jonka nimi on select_menu.xml R.id.clear_screen viittaa id arvoon joka on annettu resursseissa tunnisteelle clear_screen
Käyttöliittymä Jokainen käyttäjälle näkyvä käyttöliittymäkomponentti on oma View olio XML pohjainen määrittely Voidaan tehdä myös ohjelman sisällä, mutta erillinen ulkoinen määrittely suositeltavaa koska muutoksien tekeminen helpottuu huomattavasti Sisennetty hierarkia nested <vanhempi> <lapsi> <käyttöliittymäelementti/> </lapsi> </vanhempi> Tallennetaan res/layout resurssikansioon
Käyttöliittymä Jokainen käyttöliittymä xml alkaa nimiavaruus (namespace) määrittelyllä Xlmns:android= http://schemas.android.com/apk/res/android Määrittelee android nimiavaruuden ja estää mahdolliset konfliktit Käyttöliittymäresurssi ladataan komennolla setcontentview(r.layout.<käyttöliittymäresurssi>) Koodissa halutun näkymän voi valita käyttämällä esim: View view = findviewbyid(r.id.<haluttu view>);
Perus attribuutit - ID Android:id Yksilöllinen ID-tunnus elementille Syntax: android:id= @[+]id/<resurssin_nimi> @ merkillä XML parseri täyttää kentän sisällön ohjeiden mukaisesti + -merkkiä käytetään kun halutaan luoda uusi resurssi annetulla nimellä, muutoin parsetetaan jo aiemmin määritelty id Yksilöllinen ID-arvo generoidaan automaattisesti
Perus attribuutit layout Käyttöliittymäelementeille tarkoitetut elementin kokomäärittelyt Layout_width määrittelee leveyden Layout_height korkeuden Syntax: android:layout_width= wrap_content Määrittelee elementin leveydeksi koon johon elementin sisältö mahtuu Muita mahdollisia kokoja: fill_parent tekee lapsielementistä yhtä leveän ja/tai korkean kuin sen vanhempi (API 8 :sta lähtien match_parent Numeraalinen koko (esim. 40px ) joka voidaan ilmoittaa joko Pikseli (px) Tiheys-riippumatton pikseli (dp) Skaalattu pikseli (sp)
Perus attribuutit title ja text Title määrittelee otsikon esim. menu elementille Syntax: android:title= <otsikko> tai @<resurssi>/<otsikko_resurssi> Otsikko voidaan joko suoraan kirjoittaa tai käyttää @ merkkiä ja hakea jostain resurssista Text määrittelee esim. button elementin sisältämän tekstin Syntax: android:text= <teksti> tai @<resurssi>/<teksti_resurssi>
Perus attribuutit - icon Määrittelee elementissä esitettävän graafisen ikonin Syntax: android:icon= @drawable/<ikonin tiedostonimi (ilman päätettä)> Esimerkiksi menu elementtiin voidaan lisätä ikoni tekstin lisäksi Sovellukselle lisätään launcher käynnistysikoni käyttäen icon attribuuttia AndroidManifest.xml:ssä
LinearLayout Lineaarinen rakenne-elementti Elementit lisätään toisen perään kuten esim. HTML:ssä Voidaan määrittää vaakatasoon tai pystysuoraan (horizontal, vertical) Android:orientation
RelativeLayout Helpottaa elementtien sijoittelua View-elementit sijoitetaan suhteessa vanhempiin Voidaan käyttää rakenteellisia attribuutteja Esim: toleftof sijoittaa elementin määritellyn elementin vasemmalle puolelle Esimerkki: android:layout_toleftof= @id/ok_button Asettaa elementin ok_button elementin vasemmalle puolelle alignbottom, alignleft, alignright jne.
TableLayout Taulukkomainen rakenne Rivi määritellää <TableRow> -tägillä Muistuttaa HTML:n table rakennetta Taulukon riveille voi sisällyttää minkä tahansa View -elementin
GridView Ruudukkomainen rakenne Erittäin käytännöllinen esim. kuvagallerian käyttöliittymänä
TabLayout Välilehtityylinen rakenne Rakennetaan käyttämällä TabHostia ja TabWidgetiä XML tiedostoon määritellään TabHost elementti jonka sisään välilehdet rakennetaan ohjelmallisesti TabHostin sisään voidaan käyttää mitä tahansa layoutia TabWidget elementti sisältää välilehtipalkin
ListView Luo automaattisesti skrollattavan listanäkymän Sisältö generoidaan ListAdapterillä XML layout tiedostoa ei ladata, vaan XML:ssä määritellään jokaisen listattavan esineen layoutin