Professional Documents
Culture Documents
Android
Subtitle
Sadržaj predavanja
Subtitle
● Sučelja
– Toast
– Butterknife
– Widgeti – nastavak
● Resursi
- Općenito
- Što ide u koju datoteku
- Alternativni resursi
- Assets
24.3.2020.
Kratka poruka
Toast
Subtitle
Služi za prikazivanje kratkih poruka korisniku
●
Kratka poruka
Toast
Subtitle
●Toast je moguće napraviti i s proizvoljnim layoutom pomoću
toast.setView(layout) metode
Moguće mu je podesiti gravitaciju
●
24.3.2020.
Demo
Subtitle
Prikaz Toast-a
Custom gravitacija
Custom layout
24.3.2020.
Napredak
Progress
Subtitlebar
● ProgressBar
- Prikazuje napredak nečega
● SeekBar
- Moguće je ručno namještati vrijednosti
● RatingStar
- Izgled za rating u obliku zvjezdica (aplikacije npr.)
24.3.2020.
Ponavljanje
Dohvaćanje
Subtitle elemenata iz koda
● Ugrađena je metoda findViewById
- Potrebno joj je predati int kao parametar
- Do istog se dolazi preko generirane R klase
- Metoda vraća View kojeg je (najčešće) potrebno „kastati” u
odgovarajuću kontrolu iako kaže Android Studio da ne
● Primjer
- (SeekBar) findViewById(R.id.seekBarWithListener);
24.3.2020.
Demo
Subtitle
ProgressBar
SeekBar
RatingStar
Dohvat kontrola
24.3.2020.
Butterknife
Ali prije njega potrebno je razumjeti anotacije
24.3.2020.
Anotacije
Subtitle
parametri i paketi
●Do anotacija je moguće doći refleksijom prilikom
izvođenja
● Moguće je kreiranje vlastitih anotacija
Neke od ugrađenih su: @Override, @Deprecated,
●
@SuppressWarnings, @SafeVarargs…
24.3.2020.
Anotacije
Vlastite
Subtitleanotacije
Butter Knife
Jake Wharton
Subtitle
pomoću anotacija
● Generira kod i koristi refleksiju
class ExampleActivity extends Activity {
@BindView(R.id.title) TextView title;
@BindView(R.id.subtitle) TextView subtitle;
@BindView(R.id.footer) TextView footer;
@BindString(R.string.title) String title;
@BindDrawable(R.drawable.graphic) Drawable graphic;
@BindColor(R.color.red) int red;
@BindDimen(R.dimen.spacer) Float spacer;
Demo
Subtitle
Butter Knife
24.3.2020.
Spinner
Nazad na widgete
Subtitle
●Ponašaju se kao JComboBox otprilike
●Služe odabiru jedne u nizu vrijednosti
Demo
Subtitle
Predefinirani Spinner
Dinamički spinner
Custom spinner
24.3.2020.
Prikaz slika
ImageView
Subtitle
●Prikazuje sliku
●Najvažniji atributi:
Prikaz slika
ImageButton
Subtitle
●ImageButton nasljeđuje ImageView
●Dodaje izgled gumba
24.3.2020.
Demo
Subtitle
ImageView
ImageButton
Validacija
24.3.2020.
Resursi
Kako napraviti aplikaciju za sve te različite uređaje i ostali normalan?
Subtitle
Nikako.
24.3.2020.
Resursi
Opća kultura
Subtitle
● Slike, stringovi, layouti, liste koji se koriste unutar aplikacije
● Svi resursi nalaze se u res/ direktoriju
● Dobivaju generirani id u R klasi
● Služe višejezičnosti i različitim tipovima uređaja
● Mogu biti univerzalni za sve uređaje
● Mogu biti različiti za različite uređaje
- Veličina ekrana
- Jezik
24.3.2020.
Resursi
Mjesta pohrane (nekih) resursa
Subtitle
●color/
- Definiranje boja nekog objekta ovisno o njegovom stanju
●drawable/
Resursi
Mjesta pohrane (nekih) resursa
Subtitle
values/
●
Resursi
Tablica
Subtitledimenzija
Alternativni resursi
Zašto, čemu?
Subtitle
●Zbog velikih razlika u dizajnu i načinu upotrebe Android uređaja
postoje alternativni resursi
●Omogućavaju povlačenje različitih resursa za različita okruženja
Alternativni resursi
Kvalifikatori
Subtitle direktorija
Conf. Opis
MCC i MCN MCC (Mobilni kod zemlje), MNC(Mobilni kod operatora). Moguće je koristiti samo jedan od navedenih: npr.
mcc219 ili mcc219-mnc01. Popis dozvoljenih moguće je naći na wikipediji:
http://en.wikipedia.org/wiki/Mobile_country_code
jezik Po iso standardu. Npr. hr-rHR ili samo hr, en-rUS ili samo en
Smjer layouta ldrtl (layout-direction-right-to-left) ili ldltr (layout-direction-left-to-right)
Za jezike koji se čitaju s desna na lijevo. (Api>17)
najmanja širina sw<N>dp npr. sw320dp ili sw600dp. Najmanja moguća širina ekrana. Ako je za prikaz layouta potrebno barem
600dp-a, potrebno je napraviti direktorij
res/layout-sw600dp (Api>13)
trenutna širina w<N>dp npr. w320dp ili w600dp. Trenutna širina ekrana ovisno o landscape i portrait modu rada. (Api>13)
trenutna visina h<N>dp npr. h320dp ili h600dp. Trenutna visina ekrana ovisno o landscape i portrait modu rada. (Api>13)
veličina ekrana small (320x426 dp), normal (320x470 dp), large (480x640 dp), xlarge (720x960 dp)
dp u zagradi označava minimalne vrijednosti nakon kojih će se resursi učitati. (Api>4)
omjer ekrana long (WQVGA, WVGA, FWVGA) ili notlong (QVGA, HVGA, VGA) – podrška za widescreen ekrane. (Api>4)
Alternativni resursi
Kvalifikatori
Subtitle direktorija
Conf. Opis
Orijentacija port, land – je li uređaj u portretu ili landscapeu
UI mod car, desk, television, appliance, watch – ovisi o tome na što je ukopčan uređaj (Api>8, television Api>13,
watch Api>20)
Noćni mod night, notnight – je li noć ili dan. (Api>8)
Gustoća piksela ldpi (120dpi), mdpi (160dpi), hdpi (240dpi), xhdpi (320dpi, API>8), xxhdpi (420dpi, API>16), xxxhdpi (640dpi,
API>18), nodpi (ne sklira slike), tvdpi (213dpi, API>13)
Touchscreen notouch, finger
Tipkovnica keysexposed (Uređaj ima tipkovnicu), keyshidden (Uređaj ima tipkovnicu, ali je sakrivena i uređaj nema
softversku tipkovnicu), keyssoft (Softverska tipkovnica)
Metoda tipki nokeys (uređaj nema hardver za unos), qwerty (uređaj ima tipkovnicu), 12key (uređaj ima tipkovnicu od 12
gumbića)
Navigacijske navexposed (Navigacijske tipke su dostupne korisniku), navhidden (Navigacijske tipke nisu dostupne. Npr,
tipke zatvoren je poklopac uređaja.)
Ne touch nonav (Uređaj nema navigaciju), dpad (Uređaj ima d-pad), trackball (Uređaj ima trackball), wheel (Uređaj
navigacija ima kotačić za navigaciju (rijetkost))
Verzija APIja verzija APIja na uređaju. Npr: v3, v4, v7, v14...
24.3.2020.
Alternativni resursi
Pravila
Subtitle
● Moguće je specificirati više kvalifikatora odvojenih crticom
- npr. drawable-hr-land (slike za uređaj na hrvatskom i u
landscape modu rada)
● Kvalifikatori moraju biti po redosljedu kao u tablici
- npr. drawable-hr-land (slike za uređaj na hrvatskom i u
landscape modu rada)
●Resursi se ne smiju ugnježđivati
●Vrijednosti su case insensitive
Resursi
Sintaksa
Subtitle
● Za dohvat iz programskog koda:
- Resources res = getResources();
- String hello = res.getString(R.string.hello);
● Za dohvat iz xml-a:
- android:textColor="@android:color/secondary_text_dark”
24.3.2020.
Demo
Subtitle
Pohrana resursa
Alternativni resursi
Pristup resursima
finish();
Subtitle
● pitanja?