Layouty 1. Kilka layoutów w jednej aplikacji 2. Kilka aktywności w jednej aplikacji 3. Projektowanie layoutu: kontenery do grupowania komponentów komponenty zmiana parametrów (properties) komponentu, K-16, 2017/2018 40 Kilka layoutów 1. Tworzymy nowy projekt Android Application Project. 2. W ramach tego projektu tworzymy drugi layout (np. New > Android > Android XML Layout File) 3. Na obydwu layoutach tworzymy po przycisku i każdemu przypisujemy inną akcję onclick. (w tabelce Properties) 4. W klasie MainActivity tworzymy funkcje do obsługi tych akcji. (wzór: public void nazwaakcji(view w) { } ) 5. Funkcja od akcji przycisku z pierwszego layoutu ma przełączać widok na drugi layout i vice versa. (przełączenie widoku: setcontentview(r.layout.nazwa_layoutu); ) 6. *Uzupełnij pierwszy widok o pole tekstowe (Text Field), a drugi o napis (komponent TextView). Ustaw im odpowiednie nazwy ID. Dopisz do akcji pierwszego przycisku kod, aby dodatkowo odczytywała treść z pola tekstowego i przepisywał ją do napisu na drugim layoucie. (odczyt:.gettext( ), wpis:.settext( )), K-16, 2017/2018 41 2018 Wszelkie prawa zastrzeżone 1
Projektowanie widoku (layoutu), K-16, 2017/2018 42 LinearLayout RelativeLayout AbsoluteLayout WebView ListView GridView FrameLayout ScrollView Rodzaje layoutów http://developer.android.com/guide/topics/ui/declaring-layout.html, K-16, 2017/2018 43 2018 Wszelkie prawa zastrzeżone 2
http://www.coreservlets.com/android-tutorial/ Zagnieżdżanie layoutów, K-16, 2017/2018 44 AndroidManifest i uprawnienia, K-16, 2017/2018 46 2018 Wszelkie prawa zastrzeżone 3
AndroidManifest.xml Specjalny plik opisu aplikacji, zawierający: nazwę pakietu dla kodu Javy, skład aplikacji (aktywności, serwisy itd.), wykaz uprawnień aplikacji, minimalną wymaganą wersję Androida, wymagane biblioteki dodatkowe., K-16, 2017/2018 47 AndroidManifest.xml, K-16, 2017/2018 48 2018 Wszelkie prawa zastrzeżone 4
Uprawnienia (Permissions) http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions, K-16, 2017/2018 49 Uprawnienia (Permissions) http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions, K-16, 2017/2018 50 2018 Wszelkie prawa zastrzeżone 5
Uprawnienia (Permissions) Android 5.1.1 i wcześniej zgoda na uprawnienia podczas instalacji Android 6.0 i dalej zgoda na niebezpieczne uprawnienia podczas uruchomnienia aplikacji, K-16, 2017/2018 51 Uprawnienia normalne ACCESS_LOCATION_EXTRA_COMMANDS ACCESS_NETWORK_STATE ACCESS_NOTIFICATION_POLICY ACCESS_WIFI_STATE BLUETOOTH BLUETOOTH_ADMIN BROADCAST_STICKY CHANGE_NETWORK_STATE CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_STATE DISABLE_KEYGUARD EXPAND_STATUS_BAR GET_PACKAGE_SIZE INSTALL_SHORTCUT INTERNET KILL_BACKGROUND_PROCESSES MANAGE_OWN_CALLS MODIFY_AUDIO_SETTINGS NFC READ_SYNC_SETTINGS READ_SYNC_STATS RECEIVE_BOOT_COMPLETED REORDER_TASKS REQUEST_COMPANION_RUN_IN_BACKGROUND REQUEST_COMPANION_USE_DATA_IN_BACKGROUND REQUEST_DELETE_PACKAGES REQUEST_IGNORE_BATTERY_OPTIMIZATIONS REQUEST_INSTALL_PACKAGES SET_ALARM SET_TIME_ZONE SET_WALLPAPER SET_WALLPAPER_HINTS TRANSMIT_IR UNINSTALL_SHORTCUT USE_FINGERPRINT VIBRATE WAKE_LOCK WRITE_SYNC_SETTINGS, K-16, 2017/2018 52 2018 Wszelkie prawa zastrzeżone 6
Uprawnienia niebezpieczne, K-16, 2017/2018 53 Uprawnienia (Permissions) Pełna lista z opisami: http://developer.android.com/reference/android/manifest.permission.html, K-16, 2017/2018 54 2018 Wszelkie prawa zastrzeżone 7
Kompatybilność Różne wersje systemu Android Różne rozmiary i orientacje ekranu Różne języki Różne urządzenia (sensory, przyciski, itp.), K-16, 2017/2018 55 Kompatybilność Różne wersje systemu Android Różne rozmiary i orientacje ekranu osobne layouty, rozmiary grafiki, pliki XML ze stałymi dla rozmiarów, dp zamiast px itp. automatyczne przełączanie Różne języki osobne pliki ze stałymi tekstowymi automatyczne przełączanie Różne urządzenia (sensory, przyciski, itp.), K-16, 2017/2018 56 2018 Wszelkie prawa zastrzeżone 8
Projekt podział/foldery ZASOBY, K-16, 2017/2018 57 Projekt podział/foldery ZASOBY, K-16, 2017/2018 58 2018 Wszelkie prawa zastrzeżone 9
Projekt podział/foldery ZASOBY Pełna lista z opisami: http://developer.android.com/guide/topics/resources/index.html, K-16, 2017/2018 59 Lokalizacje (wersje językowe) Muszą istnieć domyślne wartości (np. dla docelowego języka) zapisane w res/values/strings.xml. Zestaw domyślny musi zawierać wszystkie treści. Dla alternatywnych języków tworzy się pliki: res/values-<język>/strings.xml, np. res/values-en/strings.xml res/values-jp/strings.xml itp. Wersje alternatywne nie muszą zawierać wszystkich treści. Braki uzupełniane będą z wartości domyślnych. http://developer.android.com/guide/topics/resources/localization.html, K-16, 2017/2018 60 2018 Wszelkie prawa zastrzeżone 10
Lokalizacje (wersje językowe) Odwołanie do treści z poziomu kodu źródłowego: Java: String hello = getresources().getstring(r.string.hello_world); Komponenty z layoutu: textview.settext(r.string.hello_world); Z layoutu XML: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />, K-16, 2017/2018 61 Wersje alternatywne (layout) Alternatywne layouty: duży i mały rozmiar, orientacja pozioma i pionowa. MyProject/ res/ layout/ main.xml layout-land/ main.xml layout-large/ main.xml layout-large-land/ main.xml # default (portrait) # landscape # large (portrait) # large landscape, K-16, 2017/2018 62 2018 Wszelkie prawa zastrzeżone 11
Wersje alternatywne (obraz) Alternatywne obrazy: ładowane w zależności od rozdzielczości ekranu i gęstości matrycy. grafika wektorowa SVG, K-16, 2017/2018 63 2018 Wszelkie prawa zastrzeżone 12