Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 8 Wykorzystanie układu RelativeLayout

Podobne dokumenty
Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

[Android] Podstawy programowania

Android pierwsza aplikacja

Podstawowe elementy GUI - zadania

Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda

Laboratorium Systemów Mobilnych. Wykład 1

Systemy operacyjne na platformach mobilnych

Systemy operacyjne na platformach mobilnych

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

JAVA : TELEFONY KOMÓRKOWE I ANDROID 1. WSTĘP

Systemy operacyjne na platformach mobilnych

Mechanizm zapisu preferencji

AndroidManifest.xml. Plik manifestu opisuje podstawowe charakterystyki aplikacji i definiuje jej komponenty.

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Mechanizm powiadomień

Obsługa SMS i telefonii

Tworzenie dialogów i wykorzystanie klasy Toast

Systemy operacyjne na platformach mobilnych

Wsparcie dla różnych urządzeń. SDK pozwala przystosować aplikację do większości tych wypadków

Mariusz Fraś. Instytut Informatyki. olitechnika Wrocławska. Systemy Wbudowane. Android. Dr inż. Mariusz Fraś. maf 1

Podstawowe kontrolki i ich obsługa

Podstawowe elementy GUI - zadania

Laboratorium Systemów Mobilnych. Wykład 2

Tworzenie wydajnych interfejsów. Autorzy: Piotr Michałkiewicz, 2 rok AiR Daniel Maksymow, 2 rok Informatyki

Fragmenty są wspierane od Androida 1.6

ANDROID. OpenGL ES 1.0. Tomasz Dzieniak

Wykorzystanie plików

Powiadomienia w systemie Android

akademia androida Http i AsyncTask część VII

Java Platform Micro Edition

Wykorzystanie map i geolokalizacji

Mobilne aplikacje multimedialne

Księgarnia internetowa Lubię to!» Nasza społeczność

Szkolenie Android dla początkujących

Zaawansowane aplikacje internetowe

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Programowanie obiektowe

Życie aktywności Nawigując przez aplikacje poszczególne Aktywności przechodzą pomiędzy stanami. Dla przykładu gdy aktywność uruchamia się po raz

Programowanie Urządzeń Mobilnych. Laboratorium nr 9,10

Java: interfejsy i klasy wewnętrzne

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

akademia androida Service, BroadcastReceiver, ContentProvider część IV

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Layouty. Kilka layoutów

Spis treści. Programowanie aplikacji na platformę Android v 1.0. A.Klusiewicz

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Graficzny interfejs użytkownika

Warsztaty v2 Layout y i widget y. Tomasz Wachowski Kamil Snopek Jan Romaniak

Spis treści. Programowanie aplikacji na platformę Android. A.Klusiewicz

Aplikacje w środowisku Java

Podstawowe elementy GUI cz. 2 i 3 - zadania

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Zaawansowane aplikacje WWW - laboratorium

Szybciej (pisać) Łatwiej (czytać) Prościej (utrzymywać) Marcin Wąsowski Amsterdam Standard Sp. z o.o.

Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Victor Matos, Cleveland State University.

Wykład 7: Pakiety i Interfejsy

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Android. Hierarchie widoków i ich wy±wietlanie. Piotr Fulma«ski. March 14, 2016

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

akademia androida Intencje oraz URI część III

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Języki i metody programowania Java. Wykład 2 (część 2)

STWORZENIE PRZYKŁADOWEJ

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

WYŻSZA SZKOŁA INŻYNIERYJNO EKONOMICZNA z siedzibą w Rzeszowie WYDZIAŁ PRZEDSIĘBIORCZOŚCI

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe

I. Usługi. Usługa może przyjąć dwie formy:

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

Klasy abstrakcyjne i interfejsy

Automatyczne testowanie aplikacji Android

Aplikacje internetowe i rozproszone - laboratorium

Kilka prostych programów

Aplikacje RMI

Instalujemy środowisko. Hello World! Odczyt/zapis informacji do komponentów na formie. onclick()

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Android poradnik programisty

Wyświetlanie danych na listach

AKADEMIA MŁODYCH ODKRYWCÓW

Tworzenie i wykorzystanie usług sieciowych

Aplikacje RMI Lab4

WSTĘP DO ANDROIDA. Laboratorium

Programowanie urządzeń mobilnych w systemie Android

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

1 Intefejsy graczne. 1.1 Okienka. 1.2 Komponenty

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

KLASY, INTERFEJSY, ITP

Metody dostępu do danych

Aplikacje w Javie- wykład 11 Wątki-podstawy

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Transkrypt:

Ćwiczenie 8 Wykorzystanie układu RelativeLayout Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z zasadami użycia układu graficznego RelativeLayout oraz wykształcenie umiejętności zastosowania tego układu do tworzenia interfejsu użytkownika. Zakres ćwiczenia obejmuje definiowanie układu RelativeLayout i umieszczanie w nim kontrolek dziedziczących po klasie View (m.in. TextView, EditText, Button, CheckBox, RadioGroup, RadioButton, DatePicker, TimePicker, Toast). Przygotowanie się do ćwiczenia Zapoznać się z wykładem Interfejs użytkownika układy. Zapoznać się z hierarchią klas układów graficznych. Przestudiować opis dotyczący układu RelativeLayout. Powtórzyć wiadomości dotyczące kontrolek wykorzystywanych na dotychczasowych ćwiczeniach. Na podstawie dokumentacji Android SDK: http://developer.android.com/reference/packages.html zapoznać się w podstawowym zakresie z klasami RelativeLayout, ScrollView, DatePicker, TimePicker. Zapoznać się z przykładową aplikacją zamieszczoną w opisie ćwiczenia. Przeanalizować kod źródłowy aplikacji i porównać go z kodem aplikacji w ćwiczeniu dotyczącym układu LinearLayout (ćwiczenie 7). Zadania do wykonania 1. Uruchomić przykładową aplikację zamieszczoną w opisie ćwiczenia i przetestować jej działanie. 2. Napisać aplikację, która umożliwia wprowadzenie dwóch czasów zegarowych (godziny, minuty, sekundy) i określenie różnicy pomiędzy nimi wyrażonej w godzinach, minutach i sekundach. Do wprowadzania danych i wyświetlenia wyniku użyć trzech obiektów klasy TimePicker. Zastosować układ RelativeLayout. 3. Napisać aplikację zgadywankę, w której losowana jest całkowita liczba pseudolosowa z przedziału [1, 1000]. Użytkownik zna przedział z którego wylosowano liczbę, ale nie zna wylosowanej wartości. Zadaniem jest odgadnięcie wylosowanej liczby. Na wprowadzane przez użytkownika liczby aplikacja odpowiada: za mała, za duża lub zgadłeś za n-tym razem. Zastosować układ RelativeLayout i możliwość przewijania ekranu w pionie (ScrollView). Strona 1

Przykładowa aplikacja plik Projekt5Activity.java package org.przyklad; import android.app.activity; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.checkbox; import android.widget.datepicker; import android.widget.edittext; import android.widget.radiobutton; import android.widget.toast; public class Projekt5Activity extends Activity implements OnClickListener private RadioButton rb1, rb2; private EditText et1, et2; private DatePicker dp; private CheckBox chk1, chk2, chk3, chk4; private Button btn1, btn2; @Override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); rb1 = (RadioButton) this.findviewbyid(r.id.radio0); rb2 = (RadioButton) this.findviewbyid(r.id.radio1); rb1.setonclicklistener(this); rb2.setonclicklistener(this); et1 = (EditText) this.findviewbyid(r.id.edittext1); et2 = (EditText) this.findviewbyid(r.id.edittext2); dp = (DatePicker) this.findviewbyid(r.id.datepicker1); chk1 = (CheckBox) this.findviewbyid(r.id.checkbox1); chk2 = (CheckBox) this.findviewbyid(r.id.checkbox2); chk3 = (CheckBox) this.findviewbyid(r.id.checkbox3); chk4 = (CheckBox) this.findviewbyid(r.id.checkbox4); chk1.setonclicklistener(this); chk2.setonclicklistener(this); chk3.setonclicklistener(this); chk4.setonclicklistener(this); btn1 = (Button) this.findviewbyid(r.id.button1); btn2 = (Button) this.findviewbyid(r.id.button2); btn1.setonclicklistener(this); btn2.setonclicklistener(this); public void onclick(view v) switch (v.getid()) case R.id.button1: wczytaj(); break; case R.id.button2: this.finish(); break; Strona 2

private void wczytaj() CharSequence imie = (CharSequence) et1.gettext(); CharSequence nazwisko = (CharSequence) et2.gettext(); int r = dp.getyear(); int m = dp.getmonth()+1; // miesiące liczone od 0 int d = dp.getdayofmonth(); String s = (rb1.ischecked()? "Pan " : "Pani ") + imie.tostring() + ' ' + nazwisko.tostring(); s = s + "\nurodz. " + r + '-' + m + '-' + d + "\nzainteresowania: "; if (chk1.ischecked()) s = s + chk1.gettext().tostring() + ", "; if (chk2.ischecked()) s = s + chk2.gettext().tostring() + ", "; if (chk3.ischecked()) s = s + chk3.gettext().tostring() + ", "; if (chk4.ischecked()) s = s + chk4.gettext().tostring(); Toast toast = Toast.makeText(Projekt5Activity.this, s, Toast.LENGTH_LONG); toast.show(); Przykładowa aplikacja plik main.xml Zwrócić uwagę na umieszczenie układu RelativeLayout wewnątrz elementu ScrollView, co umożliwia przewijanie ekranu w pionie. <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollview1" android:layout_height="fill_parent" > <RelativeLayout android:layout_height="fill_parent" > <RadioGroup android:id="@+id/radiogroup1" android:orientation="horizontal" > <RadioButton android:id="@+id/radio0" android:checked="true" android:text="@string/rb1tekst" /> <RadioButton android:id="@+id/radio1" android:text="@string/rb2tekst" /> </RadioGroup> android:id="@+id/textview1" android:text="@string/tv1tekst" android:layout_below="@id/radiogroup1" /> Strona 3

<EditText android:id="@+id/edittext1" android:inputtype="textpersonname" android:layout_torightof="@id/textview1" android:layout_aligntop="@id/textview1" /> android:id="@+id/textview2" android:text="@string/tv2tekst" android:layout_below="@id/edittext1" /> <EditText android:id="@+id/edittext2" android:inputtype="textpersonname" android:layout_torightof="@id/textview2" android:layout_aligntop="@id/textview2" /> android:id="@+id/textview3" android:text="@string/tv3tekst" android:layout_below="@id/edittext2" android:layout_centerhorizontal="true" /> <DatePicker android:id="@+id/datepicker1" android:layout_below="@id/textview3" android:layout_centerhorizontal="true" /> android:id="@+id/textview4" android:text="@string/tv4tekst" android:layout_below="@id/datepicker1" android:layout_centerhorizontal="true" /> android:id="@+id/checkbox1" android:text="@string/chk1tekst" android:layout_below="@id/textview4" /> android:id="@+id/checkbox2" android:layout_weight="1" android:text="@string/chk2tekst" android:layout_below="@id/checkbox1" /> android:id="@+id/checkbox3" android:text="@string/chk3tekst" android:layout_below="@id/checkbox2" /> android:id="@+id/checkbox4" android:text="@string/chk4tekst" android:layout_below="@id/checkbox3" /> Strona 4

<Button android:id="@+id/button1" android:text="@string/btn1tekst" android:layout_below="@id/checkbox4" /> <Button android:id="@+id/button2" android:text="@string/btn2tekst" android:layout_torightof="@id/button1" android:layout_aligntop="@id/button1" /> </RelativeLayout> </ScrollView> Wygląd interfejsu użytkownika zdefiniowanego w pliku main.xml Strona 5

Przykładowa aplikacja plik strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">ankieta osobowa</string> <string name="tv1tekst">imię:</string> <string name="tv2tekst">nazwisko: </string> <string name="tv3tekst">data urodzenia:</string> <string name="tv4tekst">zainteresowania:</string> <string name="rb1tekst">mężczyzna</string> <string name="rb2tekst">kobieta</string> <string name="btn1tekst">wczytaj</string> <string name="btn2tekst">zakończ</string> <string name="chk1tekst">film</string> <string name="chk2tekst">literatura</string> <string name="chk3tekst">muzyka</string> <string name="chk4tekst">sport</string> </resources> Strona 6