Upload
others
View
25
Download
0
Embed Size (px)
Citation preview
Tytuł oryginału: Sams Teach Yourself Android™ Application Development in 24 Hours, Fourth Edition
Tłumaczenie: Grzegorz KowalczykProjekt okładki: Studio Gravite / OlsztynObarek, Pokoński, Pazdrijowski, Zaprucki
ISBN: 978-83-283-2150-2
Authorized translation from the English language edition: ANDROID APPLICATION DEVELOPMENT IN 24 HOURS, SAMS TEACH YOURSELF, ISBN 0672337398; by Carmen Delessio; and Lauren Darcey; and Shane Conder; published by Pearson Education, Inc, publishing as SAMS Publishing.Copyright © 2016 by Carmen Delessio, Lauren Darcey, and Shane Conder.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education Inc.
Polish language edition published by HELION S.A. Copyright © 2016.
Several images in this book use scenes from the online movie Big BuckBunny to illustrate the use of online video and using a VideoView control. This movie and related material is distributed under a Creative Commons license. For more information on the movie, go to http://www.bigbuckbunny.org/ .
Blender Foundation | http://www.blender.org
Copyright © 2008, Blender Foundation / http://www.bigbuckbunny.org
Some images in this book are reproduced or are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
The following are registered trademarks of Google: Android, Google Play, Android TV, Android Wear, Google, and the Google logo are registered trademarks of Google Inc., and are used here with permission.
Flickr and Flickr API are registered trademarks of Yahoo!.Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock Images LLC.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacjiw jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletnei rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/as24w4.zip
Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/as24w4Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę• Poleć książkę • Oceń książkę
• Księgarnia internetowa• Lubię to! » Nasza społeczność
Spis tre ci
O autorach ................................................................................ 15
Wst p ....................................................................................... 17
Cz I Podstawowe zagadnienia zwi zanez systemem Android ..............................................21
Godzina 1. Wprowadzenie do systemu Android ......................................... 23
Godzina 2. Intencje ..................................................................................... 39
Poleć książkęKup książkę
8 Spis tre ci
Godzina 3. Zasoby aplikacji ......................................................................... 61
Godzina 4. Aktywno ci i fragmenty ............................................................ 81
Godzina 5. Responsywno aplikacji — dzia anie w tle ............................. 105
Cz II Tworzenie interfejsów u ytkownika ......................123
Godzina 6. Korzystanie z podstawowych formantówinterfejsu u ytkownika ............................................................ 125
Poleć książkęKup książkę
Spis tre ci 9
Godzina 7. Tworzenie uk adów interfejsów u ytkownika .......................... 141
Godzina 8. Kontenery ListView i adaptery ................................................. 155
Godzina 9. Interfejs Material Design ......................................................... 175
Godzina 10. Inne widoki i formanty ............................................................ 199
Poleć książkęKup książkę
10 Spis tre ci
Godzina 11. Widoki ImageView i bitmapy .................................................. 217
Godzina 12. Widoki VideoView i odtwarzanie mediów ............................... 235
Godzina 13. Nawigowanie w aplikacji ........................................................ 249
Cz III Praca z danymi ....................................................273
Godzina 14. Korzystanie z systemu plików ................................................. 275
Poleć książkęKup książkę
Spis tre ci 11
Godzina 15. Zastosowanie klasy SharedPreferences .................................... 287
Godzina 16. Zapisywanie danych w bazie SQLite ........................................ 303
Godzina 17. Dost p do chmury: praca ze zdalnym interfejsem API ............. 319
Godzina 18. Wprowadzenie do pracy z dostawcami tre ci ......................... 341
Poleć książkęKup książkę
12 Spis tre ci
Godzina 19. Tworzenie dostawców tre ci ................................................... 353
Godzina 20. Loadery i adaptery CursorAdapter .......................................... 367
Cz IV Idziemy dalej .......................................................381
Godzina 21. U ywanie powiadomie .......................................................... 383
Godzina 22. Aplikacje dla Android TV i urz dze typu Android Wear ......... 395
Poleć książkęKup książkę
Spis tre ci 13
Godzina 23. Inne komponenty platformy Android ...................................... 409
Godzina 24. Publikowanie aplikacji ............................................................. 425
Skorowidz .............................................................................. 439
Poleć książkęKup książkę
Godzina 7Tworzenie uk adówinterfejsów u ytkownika
W tej godzinie: Rozpoczynamy prac z uk adami interfejsów u ytkownika Zastosowanie uk adu RelativeLayout
Zastosowanie ró nych rodzajów uk adów interfejsu Tworzenie efektywnych uk adów interfejsu u ytkownika
W systemie Android uk ady (ang. layouts) s wykorzystywane do prawid o-wego wy wietlania interfejsu u ytkownika na ró nych urz dzeniach. Ka daaktywno , któr utworzy e w aplikacji, posiada powi zany z ni plik XMLuk adu interfejsu, wykorzystuj cy komponent RelativeLayout. Pliki uk aduto szablony opisuj ce wygl d ekranu aplikacji. W tej godzinie poznasz ró nerodzaje uk adów interfejsów u ytkownika i dowiesz si , jak ich u ywa .
Rozpoczynamy prac z uk adamiinterfejsów u ytkownika
Pliki uk adu s wykorzystywane do opisywania tego, jak b dzie wygl daekran aplikacji (lub jego fragment), lub inaczej mówi c, jak b dzie wy-gl da interfejs u ytkownika aplikacji. W plikach uk adu przechowywanes definicje formantów interfejsu u ytkownika, takich jak na przyk adEditText czy Button. Poszczególne formanty interfejsu u ytkownika mogodwo ywa si do innych zasobów, takich jak ci gi znaków, kolory, wymiaryczy komponenty typu drawable.
W godzinie 6. „Korzystanie z podstawowych formantów interfejsu u yt-kownika” dowiedzia e si , e widoki to najbardziej podstawowe elementysk adowe interfejsów u ytkownika w systemie Android. Ka dy formant,taki jak Button, TextView czy Layout, to rodzaj widoku. Obiekty ViewGroupto kontenery dla innych widoków. Kiedy przy u yciu Android Studioumieszczasz w interfejsie u ytkownika przycisk Button, to tym samymdodajesz przycisk Button do uk adu RelativeLayout. W takim przypadkuprzycisk Button jest traktowany jako widok uk adu RelativeLayout.
Poleć książkęKup książkę
142 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
RelativeLayoutLinearLayout FrameLayout TableLayout GridLayout
RelativeLayout Buttonandroid:layout_below
LinearLayout FrameLayout
/res/layout
Zastosowanie znacznika include w pliku uk aduW plikach XML opisuj cych uk ad interfejsu u ytkownika mo emy u ywaznacznika <include />, pozwalaj cego na do czanie innych uk adów douk adu macierzystego. Aby skorzysta z takiego znacznika, powinienenajpierw utworzy plik uk adu pomocniczego, który osadzany jest w in-nych uk adach, a nast pnie w kodzie XML pliku mo esz odwo a si do niegotak, jak si odwo ujemy do innych zasobów. Na przyk ad: aby w danympliku XML odwo a si do pliku uk adu o nazwie basicHeader.xml, powi-niene u y znacznika <include layout="@layout/basicHeader"/>.
Projektowanie uk adów w Android Studio
RelativeLayout TextView
RelativeLayout
activity_main.xml
TextView RelativeLayout
TextView
Poleć książkęKup książkę
Rozpoczynamy prac z uk adami interfejsów u ytkownika 143
Listing 7.1. Plik XML z uk adem RelativeLayout (activity_main.xml)
1: <RelativeLayout xmlns:android="http://schemas.android.com/ apk/res/android" 2: xmlns:tools="http://schemas.android.com/tools" 3: android:layout_width="match_parent" 4: android:layout_height="match_parent" 5: android:paddingLeft="@dimen/activity_horizontal_margin" 6: android:paddingRight="@dimen/activity_horizontal_margin" 7: android:paddingTop="@dimen/activity_vertical_margin" 8: android:paddingBottom="@dimen/activity_vertical_margin" 9: tools:context=".MainActivity">10:11: <TextView android:text="@string/hello_world"12: android:layout_width="wrap_content"13: android:layout_height="wrap_content" />14:15: </RelativeLayout>
RYSUNEK 7.1. Uk ad RelativeLayout w Android Studio
DesignText
Design Text
RelativeLayout
Poleć książkęKup książkę
144 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
Tworzenie uk adów bezpo rednio w j zyku XML
Korzystanie z zasobów uk aduz poziomu kodu programu
TextView Button EditTextactivity_main.xml /res/layout
RelativeLayout
setContentView()
setContentView(R.layout.activity_main);
setContentView()
findViewById()Button id
myButton
Button myButton = (Button)findViewById(R.id.button1);
findViewById()
View LayoutInflater
Poleć książkęKup książkę
RelativeLayout dla zaawansowanych 145
LayoutInflater
LayoutInflater inflater = LayoutInflater.from(context);View exampleView = inflater.inflate(R.layout.example, container, false);Button myExampleButton = (Button)exampleView.findViewById(R.id.button1);
RelativeLayout dla zaawansowanychRelativeLayout
RelativeLayout
Wyrównywanie do kraw dzikontenera nadrz dnego
layout_alignParentLeft layoutAlignParentStart
right-to-left languages; RTL languageslayout
AlignParentStart
android:layout_alignParentStart
android:layout_alignParentEnd
android:layout_alignParentBottom
android:layout_alignParentRight
android:layout_alignParentTop
android:layout_alignParentLeft
android:layout_centerInParent
android:layout_centerVertical
android:layout_centerHorizontal
Poleć książkęKup książkę
146 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
TextView
<TextView android:text="@string/hello_world"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_alignParentLeft="true" />
RYSUNEK 7.2. Wyrównywanie formantu TextView do kontenera nadrz dnego
Wyrównywanie widoków wzgl dem siebie
RelativeLayout
android:layout_toLeftOf android:layout_toStartOf
TextView
Poleć książkęKup książkę
RelativeLayout dla zaawansowanych 147
RYSUNEK 7.3. Wyrównywanie formantów TextView wzgl dem siebie
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView android:text="@string/center" android: layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_centerInParent="true" android:id="@+id/textViewCenter" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/top_left" android:id="@+id/textViewTopLeft" android:layout_alignParentTop="true" android:layout_alignParentStart="true" />
Poleć książkęKup książkę
148 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/below_top_left" android:id="@+id/textViewBelowTopLeft" android:layout_below="@+id/textViewTopLeft" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/below_center" android:id="@+id/textViewBelowCenter" android:layout_below="@+id/textViewCenter" android:layout_alignStart="@+id/textViewCenter" />
</RelativeLayout>
RelativeLayout
Button
android:layout_alignParentBottom="true"
TextView
VideoView TextViewButton
RYSUNEK 7.4. Projekt z wykorzystaniem uk adu RelativeLayout
Poleć książkęKup książkę
Wspólne atrybuty 149
VideoView
android:layout_below="@+id/textView1"android:layout_above="@+id/loadPhotosButton"
Wspólne atrybuty
android:layout_width android:layout_height
20dpmatch_parent wrap_content
match_parentwrap_content
Marginesy uk adów
android:layout_marginTop="40dp"android:layout_marginLeft="120dp"
W a ciwo padding
paddingButton
paddingpadding 40dp
android:padding="40dp"
paddingandroid:padding
Right="40dp" android:paddingLeft="40dp"
Poleć książkęKup książkę
150 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
RYSUNEK 7.5. Zastosowanie paddingu
Inne rodzaje uk adów
RelativeLayout LinearLayout
TABELA 7.1. Najpopularniejsze formanty uk adów
Nazwa formantuuk adu
Opis Najwa niejszeatrybuty
LinearLayout Uk ad liniowy, w którymka dy kolejny widokpodrz dny jest umieszczanyza poprzednim, w jednymwierszu b d w jednejkolumnie.
Orientacja(pionowalub pozioma).
RelativeLayout Uk ad wzgl dny, w którymka dy kolejny widok podrz dnyjest pozycjonowanywzgl dem innych widokówlub wzgl dem kraw dziuk adu nadrz dnego.
Wiele atrybutówwyrównaniaodpowiadaj cych zapo o enie widokupodrz dnegowzgl dem innychwidoków.
Poleć książkęKup książkę
Inne rodzaje uk adów 151
TABELA 7.1. Najpopularniejsze formanty uk adów — ci g dalszy
Nazwa formantuuk adu
Opis Najwa niejszeatrybuty
FrameLayout Uk ad ramowy, w którymkolejne widoki podrz dne sustawiane jeden na drugimi tworz stos.
Kolejnoumieszczaniawidokówpodrz dnych jestbardzo istotna.Poszczególnewidoki mog sina siebie nak ada .
TableLayout Uk ad tabeli, w którymposzczególne widokipodrz dne s rozmieszczanew wierszach i kolumnach(tak jak w tabeli).
Ka dy wierszwymaga elementuTableRow.
GridLayout Uk ad rastrowy, w którymposzczególne widokipodrz dne s umieszczanew prostok tnych obszarachtworz cych raster.
Wiersze i kolumnyz atrybutamiRowSpeci ColumnSpec.
Zastosowanie uk adu LinearLayoutLinearLayout
orientation
orientation LinearLayout
android:orientation="vertical"
W a ciwo gravitylayout_gravity
left right center
android:layout_gravity="right"
gravity
gravity LinearLayout right
android:gravity="right"
Poleć książkęKup książkę
152 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
W a ciwo weightlayout_weight
LinearLayout
Spróbuj sam!
Ustawianie wagi formantów w uk adachAby dowiedzie si , jak dzia a atrybut layout_weight reprezentuj cy„wag ” widoku i jak nale y u ywa go w swoich projektach, powinienewykona polecenia przedstawione poni ej:
1. W folderze /res/layout utwórz nowy plik XML uk adu i nadaj mu nazwweight_example.xml.
2. U yj uk adu LinearLayout z orientacj poziom .
3. Dodaj dwa przyciski do uk adu. Szeroko obu przycisków (atrybutwidth) powinna by ustawiona na sta match_parent.
4. Dla obu przycisków ustaw atrybut layout_weight na warto 1.Oba przyciski powinny mie takie same rozmiary i zajmowa caszeroko kontenera.
5. Zmie wag jednego z przycisków i sprawd , jaki b dzie to mia owp yw na wygl d przycisków w Android Studio.
Uk ad FrameLayoutFrameLayout
FrameLayout
TextView
FrameLayoutlayout_margins
LinearLayout RelativeLayout
LinearLayout RelativeLayout
RelativeLayout
Poleć książkęKup książkę
Podsumowanie 153
Podsumowanie
LinearLayout RelativeLayout
padding margins
Pytania i odpowiedziP: Czym jest orientacja w uk adzie LinearLayout?
O:
FrameLayoutRelativeLayout
P: Jaka jest najwa niejsza ró nica pomi dzy uk adami FrameLayouti RelativeLayout?
O: RelativeLayoutFrameLayout
Warsztaty
Quiz 1. 2. LinearLayout ViewGroup
3. Buttondp
Odpowiedzi 1.
2. LinearLayout ViewGroupViewGroup
Poleć książkęKup książkę
154 Godzina 7. Tworzenie uk adów interfejsów u ytkownika
3.
android:layout_marginTop="100 dp"
wiczenia 1. FrameLayout
ButtonRelativeLayout
FrameLayout
FrameLayout
Button
topMargin leftMarginButton
2. LinearLayout
FrameLayout ButtonImageView FrameLayout
3. RelativeLayout ImageViewTextView
include
Poleć książkęKup książkę
440 Skorowidz
C
D
E
F
G
Poleć książkęKup książkę