Cvičenie 3 - Grafické prvky Android aplikácie

Cieľom tretieho cvičenia je zoznámenie s grafickými prvkami Android Studia a vytvorenie jednoduchej aplikácie.

Hierarchia používateľského rozhrania

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.

Trieda View

Základná trieda pre elementy, ktoré sa používajú pri tvorbe používateľského rozhrania napríklad:

<TextView>

XML atribútJava metódaPopisHodnota
android:textStylesetTypeface()nastavenie typu písmabold, italic, normal
android:textSizesetTextSize()veľkosť písma20dp (sp,px,in,mm,dip)
android:textColorsetTextColor()farba písma"@color/black", "#ff0000", "#5F9EA0"
android:gravitysetGravity()zarovnaniecenter, bottom, left, right

<EditText>

XML atribútJava metódaPopisHodnota
android:maxlinesetMaxLines()max počet riadkov textuint hodnoty
android:textAllCapssetAllCaps()zmena veľkosti textutrue, false
android:inputTypesetInputType()typ zadávaného textu date, number, text, password
android:hintsetHint()nápovedastring

<ImageView> a <ImageButton>

<CustomView>

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)

  • Vracia true ak bol MotionEvent úspešne spracovaný a false v prípade zlyhania.
  • MotionEvent - obsahuje kód akcie, jej parametre, súradnice a podobne.
  • 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()

    Trieda ViewGroup

    Predstavuje neviditeľný kontajner, ktorý v sebe uchováva ďalšie kontajnery alebo iné triedy typu View. Napríklad:

    <LinearLayout>

    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.

    Úloha 3.1

    Vytvorte navrhnutý layout v src/main/res/layout.

    <RelativeLayout>

    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.

    Úloha 3.2

    Vytvorte layout pre vytočenie telefónneho čísla prostredníctvom <LinearLayout>.


    © 2023 Tomáš Adam