KMI / TMA. Tvorba mobilních aplikací. 3. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

Podobné dokumenty
KMI / TMA Tvorba mobilních aplikací. 3. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)

Příklad zobrazení toastu s vlastním designem

KMI / TMA. Tvorba mobilních aplikací. 5. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací

Uživatelské rozhraní. Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 11/29/11

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

Začínáme s vývojem pro Android

Semestrální práce 2 znakový strom

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

KMI / TMA. Tvorba mobilních aplikací. 8. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

Obsah. LayoutInflater. UI model KeyEvent View Tvorba vlastních komponent Canvas Matrix Vlastní EditText

KMI / TMA Tvorba mobilních aplikací. 9. seminář ZS 2016/2017 Středa 13:15-15:45

Obecní webové stránky.

Uživatelská příručka

Popis rozšířujících funkcí JScriptu

V této příloze je podrobně popsána struktura XML dokumentu s mapou (viz kapitolu 5.3), příklad tohoto XML dokumentu je na přiloženém CD v souboru

Tvorba přizpůsobivých webových rozhraní

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Postupy práce se šablonami IS MPP

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ. Roman Fischer

Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci

Práce s texty, Transformace rastru, Připojení GPS

První kapitola úvod do problematiky

ZEMĚMĚŘICKÝ ÚŘAD. Uživatelská příručka - Metadatový editor MDE. Pod Sídlištěm 9/1800, Praha 8. Verze IS nebo části IS: Účel poslední změny:

WEBOVÉ STRÁNKY

TMU. USB teploměr. teploměr s rozhraním USB. měření teplot od -55 C do +125 C. 26. května 2006 w w w. p a p o u c h. c o m

Jazyk C# (seminář 9)

QI klient pro operační systém Android

Uživatelský modul. wm-bus Concentrator

Nephele systém. Akademie výtvarných umění v Praze. Ústav teorie informace a automatizace AV ČR, v.v.i. Ústav anorganické chemie AV ČR, v.v.i.

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Obsah. 1.1 Práce se záznamy Stránka Dnes Kontakt se zákazníkem... 5

Obecná příručka IS o ISVS

WEBOVÉ STRÁNKY

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Kontingenční tabulky v MS Excel 2010

14 Deník poradny. Popis modulu. Záložka Deník poradny

E K O N O M I C K Ý S O F T W A R E PŘÍRUČKA UŽIVATELE

Manuál pro mobilní aplikaci Patron-Pro. verze pro operační systém Symbian

APS Administrator.ST

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

Úvod do programovacích jazyků (Java)

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_135_IVT_HTML_08_tvorba_www

WEBOVÉ STRÁNKY

15. Projekt Kalkulačka

Programování v jazyku C# II. 9.kapitola

Uživatelská příručka + základní informace o IS o ISVS

Nápovědu k ostatním modulům naleznete v "Přehledu nápověd pro Apollo". (IS Apollo Nápověda Nápověda).

M4 PDF rozšíření. Modul pro PrestaShop.

Novinky ve verzi 2.10 (datum vydání )

Návod pro práci s aplikací

Novinky verze systému Spisové služby (SpS) e-spis LITE

Možnosti tisku v MarushkaDesignu

APS Administrator.OP

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Programování v jazyku C# II. 3.kapitola

Informační manuál ZVEŘEJŇOVÁNÍ STUDIJNÍCH MATERIÁLŮ PROSTŘEDNICTVÍM PORTÁLU STUDENT.CZU.CZ

4. UŽIVATELSKÉ ROZHRANÍ

Nastavení zabezpečení

Mobilní aplikace pro ovládání laboratorního napájecího zdroje

UniLog-D. v1.01 návod k obsluze software. Strana 1

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

SPC Měřicí stanice Nastavení driverů

Administrátorská příručka

Uživatelská příručka

CAD library. Spuštění aplikace. Práce s aplikací. Popis okna

db-direct internet Customer Self Administration (vlastní správa uživatelů) Uživatelská příručka

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka

Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka

Informační systém Národní soustavy kvalifikací (IS NSK) Návod na obsluhu interního webu - tvorba kvalifikačního a hodnoticího standardu

Popis prostředí MOSAIC Programové prostředí MOSAIC nastavení prostředí. Po spuštění Mosaiku se objeví okno Výběr skupiny projektů

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /

Sklady. Níže popsaný návod je určen pro uživatele s rolí Administrátor nebo Správce skladu. Přehled funkcí 2. Postup pro vytvoření nového skladu 2

Pošta a kancelář. Děkujeme za Váš zájem o tento program, věříme že v tomto dokumentu naleznete vše důležité pro práci s programem.

Import dat ze souborů csv nebo xml do aplikace FinAnalysis

PŘETĚŽOVÁNÍ OPERÁTORŮ

Jednoduchý uživatelský manuál k programu Cat s Paradise

Projekt do předmětu PAS. Textový editor

Jazyk C# (seminář 3)

Návrh uživatelských rozhraní NOV-WEB. Jakub Bartoš, Pavel Dvořák, Jakub Motyčka, Kamil Procházka

Část 3 Manuál pro správce

Android 100% Java telefon. Petr Musil

Tvorba interaktivních dokumentů v Maple

Konzervace, restaurování 2

Manuál aplikace Inkaso pohledávek

Uživatelská příručka

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

Administrační rozhraní Drupalu

41 Konzultace bariéry

Transkript:

KMI / TMA Tvorba mobilních aplikací 3. seminář 12.10.2017 ZS 2017/2018 ČTVRTEK 13:15-15:45

OBSAH SEMINáře vztah aktivit a layoutů, views a layouty podrobně, přizpůsobení se HW

HIERARCHIE VIEWS Co všechno můžeme přidat do layoutů? potomky android.view.view, základního stavebního bloku uživatelských rozhraní View TextView ImageView... ViewGroup Button EditText LinearLayout RelativeLayout

VIEWS vnoření views

VIEWS základní atributy xmlns:android defnice namespace android, povinná v kořenovém prvku android:id jednoznačný identifkátor View v rámci layoutu (nikoliv aplikace!) pro získání instance View v kódu pro defnici vztahů v layoutu

intermezzo jednotky mm (milimetry), in (palce), pt (typ. body) nepoužívat pls px (pixely) pixely mohou být na každém zařízení jinak velké také nepoužívat dp (density-independent pixels) yay!

intermezzo jednotky dp (density-independent pixels) virtuální jednotka, která se přepočítává dle hustoty obrazových bodů (pixelů) hustota obrazových bodů závisí na rozlišení a úhlopříčce přepočty např. na http://dpi.lv/ jsou zavedeny kategorie hustot pixelů: ldpi (0.75x), mdpi, hdpi (1.5x), xhdpi (2x), xxhdpi (3x), xxxhdpi (4x),

intermezzo jednotky dp (density-independent pixels) pro mdpi (~160dpi) platí dp = px pro ostatní kategorie se virtuální dp na skutečné px přepočítávají při běhu https://pixplicity.com/dp-px-converter/ dp řeší problém se zobrazením stejných rozměrů prvků na různých hustotách displejů dp se používá napříč SDK sp = dp, které zohledňuje zvětšení písma v nastavení syst., používat pro velikosti písma

VIEWS základní atributy android:layout_width a layout_height šířka/výška prvku může být určena pevnou konstantou společně s jednotkou (dp, px, ) nebo může být použita jedna z konstant match_parent velikost stejná jako rodič wrap_content velikost dle obsahu prvku

VIEWS základní atributy android:padding* a padding vnitřní okraj prvku android:layout_margin* a layout_margin vnější okraj prvku kde * je bottom, top, left, right hodnota + jednotka atribut bez sufxu nastavuje všechny strany

VIEWS atributy jen pro některé view android:text řetězec nebo identifkátor řetězce android:textcolor barva písma v hexadecimálním formátu nebo identifkátor barvy android:background barva pozadí v hexadecimálním formátu nebo identifkátor barvy (v layoutu ctrl+space pro zobrazení dalších atributů, případně použít designer)

základní views TextView základní textové pole zápis: v layoutu: <TextView> v kódu: android.widget.textview speciální atributy text: obsah řetězec textcolor: barva textu hexadecimální zápis textsize: velikost textu hodnota + jednotka

základní views EditText textové pole pro editaci (input) zápis: v layoutu: <EditText> v kódu: android.widget.edittext speciální atributy třída dědí z TextView, dědí i atributy inputtype: typ vkládáného textu, konstanty jako text, number, textpassword,

základní views Button tlačítko zápis: v layoutu: <Button> v třídě: android.widget.button speciální atributy třída dědí z TextView, dědí i atributy nemá defnované žádné vlastní atributy

základní views ImageView obrázek zápis: v layoutu: <ImageView> v třídě: android.widget.imageview speciální atributy src: zdroj obrázku scaletype: pravidlo jak se zdroj zobrazí v ImageView

základní views AbsoluteLayout prvky v layoutu jsou zobrazeny podle pevných hodnot/souřadnic

základní views AbsoluteLayout prvky v layoutu jsou zobrazeny podle pevných hodnot/souřadnic nepoužívejte to!

základní views LinearLayout prvky v layoutu jsou poskládány za sebou nebo vedle sebe android:orientation směr pokládání nových Views může nabývat hodnot horizontal nebo vertical

základní views RelativeLayout prvky v layoutu mají defnovány vztahy mezi sebou prvkům je možné přiřadit atributy, např: alignparentleft zda je prvek připnut k levé hraně layoutu, true false toleftof nalevo od, identifkátor prvku alignleft levá hrana bude stejná jako levá hrana jiného prvku, identifkátor prvku

AKTIVITY vs layouty jaký mají vztah? nikde není před kompilací defnováno jaký layout používá která aktivita Activity.setContentView(int) načte layout, vytvoří instance Views a přidá je do těla aktivity reference jednotlivých Views získáme pomocí metody Activity.fndViewById(int)

AKTIVITY vs layouty Wtf is R? vždy při změně resources (layouty, ) se automaticky generuje třída R, která se v kódu používá pro referenci na resources např. při vytvoření nového layoutu ve složce res/layout se do R přidala datová složka R.layout.{název layoutu} tuto hodnotu přijímá setcontentview (int layoutresid)

AKTIVITY vs layouty Wtf is R? např. při přiřazení identifkátoru android:id= @+id/nazev prvku v layoutu se do R přidá R.id.{nazev} tuto hodnotu přijímá fndviewbyid(int) hodnoty z R jsou přístupné i z XML R.id.{nazev} @id/nazev R.layout.{nazev} @layout/nazev

AKTIVITY vs layouty získání referencí na view po zavolání Activity.setContentView (int) můžeme získat reference vytvořených View pomocí metody Activity.fndViewById(int) metoda prostupuje layoutem, dokud nenajde View s daným identifkátorem pokud ho najde, vrátí ho, jinak null existují jiná/lepší řešení získání referencí, např. knihovna ButterKnife nebo data binding

AKTIVITY vs layouty atributy vs metody většina atributů View z XML jsou po získání instance dostupná i z Javy, např. android:text TextView.setText(String) ne však všechny atributy, např. android:textcolor= #FFFFFF TextView.setTextColor(String) nejsou pro to žádná pravidla, nutné se spolehnout na dokumentaci

PODPORA HW konfigurací různé layouty co když potřebujeme zobrazit jiný layout pro zobrazení na výšku a na šířku? jednotlivé adresáře ve složce res/ mohou být rozděleny na adresáře dle parametrů, které jsou známy při běhu aplikace např. můžeme vytvořit adresáře layout-port a layout-land, ve kterých jsou layouty rozdělené právě podle orientace

PODPORA HW konfigurací různé layouty pro layouty res/layout-port/activity_main.xml a res/layout-land/activity_main.xml je vytvořena v R pouze jedna hodnota R.layout.activity_main při běhu aplikace a volání setcontentview je vybrán layout, který lépe splňuje aktuální konfguraci (zde orientaci zařízení)

PODPORA HW konfigurací Další konfgurace rozdělení dle hustoty obrazových bodů layout-mdpi, layout-hdpi, systémového jazyka layout-cs, layout-en a dalších jsou možné kombinace např. layout-cs-port-hdpi (záleží na pořadí!)

ÚKOL 3. semináře Přidání TODO položky 1) Vytvořit novou aktivitu InsertActivity přístupnou přes nové tlačítko z MainActivity. 2) Do nové aktivity vložit nový layout activity_insert s formulářovými prvky pro title a content (label + edit) a tlačítkem. 3) Layout musí reagovat na orientaci zařízení, tj. na výšku bude label a edit pod sebou, na šířku vedle sebe. 4) Po kliku na tlačítko vypsat do konzole zapsané hodnoty.

Otázky Ptejte se!