Cieľom tretieho cvičenia je zoznámenie s grafickými prvkami Android Studia a vytvorenie jednoduchej aplikácie.
Používateľské rozhranie aktivity môžeme definovať pomocou dvoch základných tried ViewGroup
a View
. Túto hierarchiu určuje vývojár.
Základná trieda pre elementy, ktoré sa používajú pri tvorbe používateľského rozhrania napríklad:
XML atribút | Java metóda | Popis | Hodnota |
---|---|---|---|
android:textStyle | setTypeface() | nastavenie typu písma | bold, italic, normal |
android:textSize | setTextSize() | veľkosť písma | 20dp (sp,px,in,mm,dip) |
android:textColor | setTextColor() | farba písma | "@color/black", "#ff0000", "#5F9EA0" |
android:gravity | setGravity() | zarovnanie | center, bottom, left, right |
XML atribút | Java metóda | Popis | Hodnota |
---|---|---|---|
android:maxline | setMaxLines() | max počet riadkov textu | int hodnoty |
android:textAllCaps | setAllCaps() | zmena veľkosti textu | true, false |
android:inputType | setInputType() | typ zadávaného textu | date, number, text, password |
android:hint | setHint() | nápoveda | string |
android:src
pomocou ktorého špecifikujeme, aký obrázok vkladáme./res/drawable
.Vytvoríme triedu <DrawView>
, ktorá bude reprezentovať náš "CustomView" (File->New->Java Class).
Následne ju pridáme do XML layoutu (activity_main.xml):
Teraz môžeme využiť dedičnosť a metódu OnDraw(Canvas canvas) pre vykreslenie statického a dynamického obsahu.
Metóda OnDraw() môže následne vyzerať napríklad takto:
Pre interakciu s používateľom a vykreslenie dynamického obsahu, môžme využiť metódu onTouchEvent(MotionEvent motionEvent)
Pred tým ako začneme ukladať jednotlivé súradnice, vytvoríme zoznam a inicializujeme ho v konštruktore:
Metóda onTouchEvent() môže následne vyzerať napríklad takto:
Pre vykreslenie upravíme metódu onDraw()
Predstavuje neviditeľný kontajner, ktorý v sebe uchováva ďalšie kontajnery alebo iné triedy typu View
. Napríklad:
Umožňuje usporiadať vnorené prvky (views) horizontálne do riadku, alebo vertikálne do stĺpca. Kľúčové parametre pre LinearLayout sú:
V nasledujúcom ilustračnom príklade je používateľské rozhranie využívajúce LinearLayout s horizontálnou orientáciou pozostávajúce z troch tlačidiel. Prvé a tretie nemá nastavený parameter weight, čo v praxi znamená, že je implicitne nastavený na hodnotu 0. Stredné tlačidlo má nastavený parameter weight na hodnotu 1, takže má vyššiu prioritu a zaberie zvyšnú plochu.
Vytvorte navrhnutý layout v src/main/res/layout.
Pomocou týchto atribútov môžete definovať pozície prvkov voči iným prvkom. V nasledujúcom príklade je jeden prvok ukotvený voči rodičovskému view a druhé dva prvky sú ukotvené relatívne voči tomuto prvku.
Vytvorte layout pre vytočenie telefónneho čísla prostredníctvom <LinearLayout>.