Warsztaty v2 Layout’y i widget’y

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Wzorce.
Serwer WWW na AT89C52 Adrian Witlib Maciej Przeor ID06SK1
Generics w .NET 2.0 Łukasz Rzeszot.
MS Access 2003 Kwerendy Paweł Górczyński.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Mateusz Antonow. Tekst Obraz Galeria Media Kształty & linie Przyciski & menu Sklep Internetowy Ustawienia Społecznościowe Aplikacje 3. Dodaj.
Poznaj bliżej program Microsoft Office Word 2007
Tworzenie aplikacji mobilnych
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
Witamy w galerii forum 750mm.pl. Wstęp Galeria forum została stworzona dla użytkowników w celu ułatwienia dzielenia się swoimi zasobami. Pozwala ona na.
Tworzenie stron internetowych
ANNA BANIEWSKA SYLWIA FILUŚ
Lokalizacja i Globalizacja na witrynie w Visual Web Developer 2008 (ASP.Net) Daniel Literski.
System raportowania, ewaluacji oraz badania satysfakcji Klienta.
Tworzenie aplikacji mobilnych
Tworzenie aplikacji mobilnych
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
MAKRA 1.
Wzorce slajdów, animacje, różne orientacje slajdów
Formatowanie tabel. Formatowanie warunkowe. Wstawianie funkcji.
Style i szablony w Wordzie
Korespondencja seryjna
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Tytuł:Poradnik do programu PowerPoint?
Tworzenie komiksu MS PowerPoint Beata Sanakiewicz.
Visual Basic w Excelu.
Wprowadzenie do HTML Informatyka Cele lekcji: Wiadomości:
Temat 12: Formularze.
Projektowanie stron WWW
Wzorce slajdów programu microsoft powerpoint
Excel Filtrowanie Funkcje bazodanowe
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Tworzenie wykresów część I
Tworzenie wykresów część II Tworzenie wykresu domyślnego Modyfikacja wykresów Pasek narzędzi Wykres.
Korespondencja seryjna jest funkcją, która umożliwia nam stworzenie dokumentu, który zawiera ten sam typ informacji, lecz dla każdego adresata zawiera.
Microsoft® Office Word
Podstawowe zadania w programie Excel 2010 Klasa 2 TOR.
„Filtry i funkcje bazodanowe w EXCELU”
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
Do czego służy arkusz kalkulacyjny, jego budowa
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Temat: Tworzenie bazy danych
Wykład 4 Dr Aneta Polewko-Klim
Typy wyliczeniowe, kolekcje
T. 18. E Proces DGA - Działania (operatorka).
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Programowanie Obiektowe – Wykład 2
Wprowadzenie do edytorów tekstu.
Programowanie obiektowe – zastosowanie języka Java SE
Wyższa Szkoła Ekologii i Zarządzania
Przycisk uruchamiający napisany przez nas program
PGO - Projektowanie i implementacja pierwszych klas
PGO Dziedziczenie Michail Mokkas.
PGO Przeciążanie metod i konstruktorów
Najważniejsze informacje dotyczące programu Sway.
Zapis prezentacji:

Warsztaty v2 Layout’y i widget’y Dodać odsyłacze, np. forum.android.com.pl android-developers Tomasz Wachowski Kamil Snopek Jan Romaniak

Layouty w Androidzie Kamil Snopek

Główne punkty prezentacji Main.xml – Główny plik layout’u Typy layout’ów Linear Layout Table Layout Frame Layout Absolute Layout Relative Layout

Main.xml Jest to plik w którym stworzony zostanie nasz layout główny. Znajdziemy go w resources (res\layout). Kompiluje się on razem z programem i musi zostać załadowany w metodzie onCreate() za pomocą funkcji setContentView() w głównym pliku programu.

Main.xml 2 Opisujemy tutaj jaką wielkość ma mieć dany obiekt, jak się zachowywać oraz gdzie się znajdować. Przykładem niech będzie poniższy kod: android:layout_gravity="top"

Linear Layout Linear layout umieszcza wszystkie swoje komponenty w kolumnie lub wierszu. Można go zorientować na 2 sposoby: poziomo i pionowo. Layout ten pozwana na umieszczanie obiektów w zależności od atrybutu gravity oraz modyfikowanie jego wielkości.

Table Layout Layout ten umieszcza wszystkie obiekty w tablicy którą sami stworzymy. Może ona posiadać dowolną liczbę wierszy i kolumn.

Frame Layout Jest to najprostszy z layoutów. Umieszcza on wszystkie obiekty w lewym górnym rogu ekranu.

Absolute Layout Określa on położenie każdego obiektu współrzędnymi x i y. Jest to layout mało elastyczny, przez co inaczej się prezentuje nasza aplikacja na różnych typach urządzeń. Layout ten wychodzi z użycia.

Relative Layout Najczęściej używany ze względu na możliwość pozycjonowania obiektów względem siebie. Łączy dobre cechy Absolute oraz Linear layout’u. Widgety możemy ustawiać w dowolnym miejscu. Oferuje największe możliwości.

Widgets Tomasz Wachowski

Co to jest widget? Ich klasą bazową jest klasa View. Widgety są używane do komunikacji z użytkownikiem, wizualizowanie danych lub informacji o stanie programu oraz zarządzania innymi widgetami. DatePicker Image button -> Text Field -> Checkbox -> Radio button ->

Podstawowe Widgety: Label Label nazywany jest w androidzie TextView. Obiekty TextView jest używany do wyświetlania nagłówków. Nie można ich edytować, nie przyjmują one danych wejściowych.

Podstawowe Widgety: Label <TextView android:id="@+id/myTextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#ff0000ff" android:padding="3px" android:text="Enter User Name" android:textSize="16sp" android:textStyle="bold" android:gravity="center" android:layout_x="20px" android:layout_y="22px" > </TextView>

Podstawowe Widgety: Button Button pozwala na symulowanie akcji klikanie w interfejsie użytkownika. Button jest podklasą Textview, więc ich formatowanie jest podobne. <Button android:id="@+id/btnExitApp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10px" android:layout_marginLeft="5px" android:text="Exit Application" android:textSize="16sp" android:textStyle="bold" android:gravity="center" android:layout_gravity="center_horizontal"> </Button>

Podstawowe Widgety: Images Klasy ImageView oraz ImageButton, są to dwa widgety które pozwalają na osadzenie obrazków w aplikacji. Oba są odpowiednikami TextView oraz Button, lecz są one bazowane na obrazkach. Każdy z nich przyjmuje atrybut android:src lub android:background (w XML layout). Atrybut ten przypisuje im obrazek. ImageButton jest subklasą ImageView. Dodaje ona standardowe zachowanie przycisku w odpowiedzi na kliknięcie.

Podstawowe Widgety: Images <ImageButton android:id="@+id/myImageBtn1" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" > </ImageButton> <ImageView android:id="@+id/myImageView1" android:src="@drawable/microsoft_sunset" android:layout_width="150px" android:layout_height="120px" android:scaleType="fitXY"> </ImageView>

Podstawowe Widgety: EditText EditText widget jest rozszerzeniem TextView, które umożliwia edycję swojej zawartości. Metoda umożliwiająca odczyt: txtBox.getText().toString() Metoda umożliwiająca zapis: txtBox.getText().toString() Editbox posiada kilka dodatkowych opcji: android:autoText – włącza/wyłącza automatyczne sprawdzanie poprawności pisanego słowa, android:capitalize -automatyczne pisanie dużą literą, android:digits – konfiguruję pole, tak aby przyjmowało tylko określone cyfry android:singleLine – określa czy pole tekstowe jest przeznaczone dla jedno- czy wielo- liniowych tekstów, android:passoword – określa widoczność wpisanych znaków, android:numeric – (integer,decimal,signed) określa format numeryczny, android:phonenumber – formatowanie numeru telefonu.

Implementacja widgetu w programie. Aby móc korzystać z z widgetów pierw musimy do programu głównego załadować layout za pomocą: setContentView(R.layout.main) Następnie musimy odnaleźć nasz widget przy pomocy findViewById(int). Button button= (Button) findViewById(R.id.button); EditText edittext = (EditText) findViewById(R.id.edittext); CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);

ListView Jan Romaniak

ListView ListView używane jest do prezentacji danych jak sama nazwa wskazuje na liście, jest on jednym z najczęściej używanych widget’ów można go spotkać np. w ustawieniach androida.

ListView ListView jest jednym z widget’ów znajdujących się w submenu Composite w toolbox’ie interfejsu tworzenia layout’ów.

Jak stworzyć listę TextView Należy dodać nowy layout. Będzie to nasz listview item (element listy). W przykładzie nazwe list_item.xml

cd. Wybrać plik typu xml, następnie nadać mu nazwę i zaakceptować.

cd. W pliku który właśnie utworzyliśmy dodajemy w kodzie/ przeciągamy TextView <TextView android:text="TextView" android:layout_width="wrap_content" android:id="@+id/textView" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center" android:textColor="#FF33A2FF"></TextView>

W kodzie Java W pliku naszego activity należy stworzyć listę bądź tablice String’ów zawierająca interesujące nas dane List<String> namesList = new ArrayList<String>(); namesList.add("Agata"); namesList.add("Anna");

cd. W kodzie Java Należy zdefiniować dwie zmienne typów kolejno ListView i ListAdapter. Do zmiennej typu ListView należy wczytać listView, które utworzyliśmy na samym początku. ListView listView =(ListView)findViewById(R.id.simpleListView);

Tworzenie adaptera Do adaptera stworzyć nowy obiekt typu ArrayAdapter gdzie kolejne parametry konstruktora to Context gdzie podajemy nasze activity, layout naszego itemu, a ostatni to lista lub tablica naszych String’ów. ArrayAdapter<String> listAdapter= new ArrayAdapter<String>(this, ,R.layout.list_item, R.layout. textView, namesList);

Przypisanie adaptera do ListView Należy użyć metody listView.setAdapter(adapter) i wstawić tam nasz nowo utworzony adapter. listView.setAdapter(listAdapter);

AsyncTask Jan Romaniak

Dlaczego używać AsyncTask’ów W większości większych aplikacji występuje potrzeba wykonania czegoś co zajmuje sporo czasu (>3s) np. pobieranie obrazka z Internetu. Jeżeli pobierzemy go standardowo (w wątku synchronicznym z UI) np. w funkcji onCreate() to najprawdopodobniej zakończy się to tak:

AsyncTask - pułapki Tak samo jak w większości systemów z wątku jaki tworzy AsyncTask nie można bezpośrednio odwoływać się do wątku głównego (wyświetlającego grafikę). Takie zadania należy wykonywać w metodach onProgressUpdate lub onPostExecute

Jak stworzyć AsyncTask Należy stworzyć klasę dziedziczącą po klasie AsyncTask W nawiasach trójkątnych (typy generyczne) pierwszy typ oznacza jaki typ parametru przybiorą metody doInBackground i execute. public class SimpleAsyncTask extends AsyncTask<Integer, Float, Long>

cd. Jak stworzyć AsyncTask Drugi typ w tym wypadku Float oznacza, typ wartości zwracanej przez doInBackground, a także parametr metody onPostExecute Trzeci typ to typ wartości parametru onProgressUpdate i publishProgress. public class SimpleAsyncTask extends AsyncTask<Integer, Float, Long>

cd. Jak stworzyć AsyncTask W klasie należy przeciążyć metodę doInBackground i wpisać do niej zadania czasochłonne. W metodzie onProgressUpdate wpisujemy kod który ma się wykonywać na UI Thread po wykonaniu metody publishProgress. Metoda onPostExecute wykonuje się po wykonaniu zadania z doInBackground, na wątku głównym.

Tomasz Wachowski Kamil Snopek Jan Romaniak Dziękujemy  Tomasz Wachowski Kamil Snopek Jan Romaniak W ramach checi rozszerzenia swojej wiedzy zapraszamy na : http://grail.cba.csuohio.edu/%7Ematos/notes/cis-493/lecture-notes/Android-Chapter04-User-Interfaces.pdf