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

Podobné dokumenty
KMI / TMA. Tvorba mobilních aplikací. 3. seminář ZS 2017/2018 ČTVRTEK 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í

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

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

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

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

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:

Obecní webové stránky.

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

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

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

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

Možnosti tisku v MarushkaDesignu

Úvod do programovacích jazyků (Java)

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

Nastavení zabezpečení

SPC Měřicí stanice Nastavení driverů

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

Uživatelský modul. wm-bus Concentrator

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

APS Administrator.ST

CineStar Černý Most Praha

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

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

QI klient pro operační systém Android

Uživatelská příručka

Synchronizace CRM ESO9 a MS Exchange

Návod pro práci s aplikací

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

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

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

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

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

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

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

Část 3 Manuál pro správce

Administrační rozhraní Drupalu

Návrh a tvorba WWW stránek 1/8. Formuláře

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).

Generické programování

Import dat ze souborů csv nebo xml do aplikace FinAnalysis

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

Projekt. Sestavení projektu

Vývoj Internetových Aplikací

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

typová konverze typová inference

Modul msender message Sender. Nápověda

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Obecná příručka IS o ISVS

EQAS Online. DNY kontroly kvality a speciálních metod HPLC, Lednice

xrays optimalizační nástroj

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

Constructo. Uživatelská příručka

CTUGuide (XXX-KOS) D1

Prezenční stránka tréninkové skupiny v systému CzechTriSeries UŽIVATELSKÝ MANUÁL

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

Systém pro online rozhovory

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Kontingenční tabulky v MS Excel 2010

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

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

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Elektronická zdravotní karta

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

GIS Geografické informační systémy

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

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

Manuál k produktu. fajny shop. FajnyWEB.cz 2008 ( )

ANALÝZA DESIGNU Využití vlastního prvku pro časovou osu videa. o Lze přibližovat a oddalovat za pomocí dvou prstů. Aneb na obrazovce může zobrazovat

Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace

Výčtový typ strana 67

Lokality a uživatelé

Reranking založený na metadatech

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

Manuál aplikace Inkaso pohledávek

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

APS Administrator.OP

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Příručka pro editaci kontaktů na eagri

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

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. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0

Teoretické minimum z PJV

České vysoké učení technické v Praze. Fakulta Elektrotechniky XD39NUR. Semestrální práce. Ovládání videokonferencí pomocí mobilního telefonu

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

Transkript:

KMI / TMA Tvorba mobilních aplikací 3. seminář 12.10.2016 ZS 2016/2017 Středa 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

Layouty základní atributy

Layouty základní atributy xmlns:android definice namespace android, povinná v kořenovém prvku android:id jednoznačný identifikátor v rámci layoutu (nikoliv aplikace!) používá se pro získání instance daného View

intermezzo jednotky mm (milimetry), in (palce), pt (typografické body) omg nepoužívat px (pixely) ale pixely mohou být na každém zařízení jinak velké 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ů) pozn. 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, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi,

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ého prvku na různých zařízení dp se používá napříč platformou

Layouty 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

Layouty základní atributy android:padding* a padding vnitřní okraj prvku hodnota + jednotka padding bez suffixu nastavuje paddingy všech čtyř stran android:layout_margin* a layout_margin* vnější okraj prvku

Layouty atributy jen pro některé view android:text řetězec nebo identifikátor řetězce android:textcolor barva písma v hexadecimálním formátu nebo identifikátor barvy android:background barva pozadí v hexadecimálním formátu nebo identifikátor barvy (v layoutu ctrl+space pro hint dalších)

přehled základních views TextView základní textové pole zápis: v layoutu: <TextView> v třídě: android.widget.textview speciální atributy text: obsah, řetězec nebo identifikátor textcolor: barva textu, hexa nebo id textsize: velikost textu

přehled základních views EditText textové pole pro editaci (input) zápis: v layoutu: <EditText> v třídě: 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,

přehled základních 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á definované žádné vlastní atributy

přehled základních 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

přehled základních views ViewGroup View, která může obsahovat v sobě více View, tj. Layout abstraktní třída android.view.viewgroup jednotlivé implementace třídy definují pravidla zobrazení prvků v layoutu a jejich vztahy

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

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

přehled základních 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

přehled základních views RelativeLayout prvky v layoutu mají definová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, identifikátor prvku alignleft levá hrana bude stejná jako levá hrana jiného prvku, identifikátor prvku

AKTIVITY vs layouty jaký mají vztah? nikde není před kompilací definová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.findViewById(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í identifikátoru android:id= @+id/nazev prvku v layoutu se do R přidá R.id.{nazev} tuto hodnotu přijímá findviewbyid(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.findViewById(int) metoda prostupuje layoutem, dokud nenajde View s daným identifikátorem pokud ho najde, vrátí ho, jinak null existují jiná/lepší řešení získání referencí, např. anotace @Inject 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ý splňuje aktuální orientaci zařízení

PODPORA HW konfigurací Další konfigurace 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řístupnout přes nové tlačítko z MainActivity. 2) Do nové aktivity vytvoř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!