/MakeThingsKrakow

Android application for making things happen after clicking a button, made for Make Things Krakow

Primary LanguageJava

Click Me!

Nasza pierwsza aplikacja na Androida składa się z jednego ekranu, na którym znajduje się jeden przycisk. Naszym zadaniem jest dodanie akcji, która zostanie wykonana po jego wciśnięciu.

Zanim zaczniemy

Na twoim komputerze powinny być zainstalowane:

  • Android Studio wraz z Android SDK(pobierz)
  • Java JDK w wersji 6 lub nowszej
  • Git

Jak zacząć?

Zaczynamy od pobrania tego projektu do naszego katalogu roboczego. Aby to zrobić musimy w linii komend wprodadzić następujące poklecenie:

git clone https://github.com/MakeThingsKrakow/MakeThingsKrakow.git

Po wykonaniu tej komendy otwieramy Andorid Studio i z menu wybieramy File -> Import Project... Po z naszego katalogu roboczego katalog MakeThingsKrakow, klikamy OK i gotowe.

Nasz projekt zostanie zaimportowany, a my będziemy mogli rozpocząć kodowanie.

Co i gdzie znaleźć

Po zaimportowaniu naszego projektu w lewym panelu środowiska Android Studio pojawi się projekt MakeThingsKrakow, który reprezentuje naszą aplikację.

Po rozwinięciu projektu zobaczymy jego strukturę katalogów.

Interesujące nas rzeczy znajdują się w katalogu: app/src/main

W podkatalogu java znajduje się kod naszej aplikacji. Tutaj będziemy mogli zmienić to w jaki sposób zachowuje się nasza aplikacja.

W podkatalogu res znajdują się zasoby, z których może korzystać nasza aplikacja. Tu znajdziemy nasze layouty, pliki graficzne oraz dzwiękowe, które możemy wykorzystać w naszej aplikacji.

Co potrafi nasza aplikacja?

Sercem i duszą naszej aplikacji jest czerwony przycisk znajdujący się na środku ekranu.

Po kliknięciu w przycisk nic się jednak jeszcze nie dzieje. Aby to zmienić, w pliku ButtonActivity musimy odnaleźć funkcję onClick(View button). To co znajduje się w tzw. ciele tej funkcji, wykonywane jest za każdym razem gdy naciśniemy nasz przycisk.

Na początek do naszej dyspozycji mamy kilka prostych akcji:

Wyświetlenie teksu

Aby wyświetlić tekst, możemy skorzystać z akcji ShowTextAction. Aby to zrobic wpisujemy w ciele metody onClick komendę

new ShowTextAction("Hello!").perform(this);

Treść tekstu możemy oczywiście dowolnie zmodyfikować!

Zmiana koloru tła

Aby zmienić kolor tła jednego z elementów interfejsu użytkownika, możemy skorzysać z akcji ChangeBackgroundColor. Aby to zrobic wpisujemy w ciele metody onClick komendę

new ChangeBackgroundColor("#00FF00").perform(button)

Ta komenda zmieni kolor przycisku na #00FF00, czyli zielony w zapisie szestnastkowym. Jeżeli chcemy, aby nasz przycisk zmienił kolor na inny, musimy zastąpić tę wartość inną dowolnie przez nas wybraną.

Poza zmianą koloru przycisku, możemy również zmienić kolor tła naszej aplikacji. Aby to zrobić, zamieniamy button w naszej komendzie na polecenie getWindow().getDecorView().

Przykładowo, aby zmienić kolor tła na niebieski, możemy skorzystać z akcji

new ChangeBackgroundColor("#0000FF").perform(getWindow().getDecorView())

bonus: Nasza aplikacja posiada również moduł do losowego generowania koloru. Aby z niego skorzystać, kolor w postaci szesnastkowej możemy zamienć na komendę: new RandomColorGenerator().getRandomColor()

Aby zmienić tak kolor tła naszej aplikacji, musimy wykonać komendę

new ChangeBackgroundColor(new RandomColorGenerator().getRandomColor()).perform(getWindiw().getDecorView())

Odtworzenie dźwięku

Aby odtworzyć na naszym urządzeniu wybrany przez nas dźwięk, możemy skorzystać z akcji PlaySoundAction. W naszej aplikacji znajduje się już jeden plik dźwiękowy. Aby go odtworzyć możemy wykonać komendę:

new PlaySoundAction(R.raw.bazinga, this).play()

Jeżeli chcemy, aby aplikacja odwtorzyła jakiś inny dźwięk, musimy go skopiować do naszego projektu do katalogu app/src/main/res/raw, a następnie podmienić w naszej komendzie ścieżkę do naszego pliku.

Przykładowo, jeżeli dodamy do naszego projektu plik syrena.mp3, komenda która go odtworzy będzie wyglądać następująco:

new PlaySoundAction(R.raw.syrena, this).play()

Co jeszcze możemy zrobić?

Na przykład:

Zmiana wyglądu aplikacji

A może chcielibyście zmienić to jak wygląda nasza aplikacja? Nic prostrzego:

Zmiana ikonki

Ikona z której korzysta nasza aplikacja to app/src/main/res/drawable/logo.png.

Zmiana nazwy naszej aplikacji

Nazwa naszej aplikacji snajduje się w pliku app/src/main/res/values/strings.xml. Można tutaj również znaleźć i zmotyfikoawć etykietę naszego przycisku.

Zmiana kolorów aplikcaji

Kolory naszej aplikacji zadeklarowane są w pliku app/src/main/res/values/colors.xml

Jak uruchomić naszą aplikację?

Jeżeli korzystasz ze swojego własnego telefonu i chcesz na nim uruchomić aplikację, musisz uaktywnić opcje debugowania w opcjach programistycznym swojego telefonu. Tutaj znajduje się artykuł na temat tego jak to zrobić: http://www.download.net.pl/jak-wlaczyc-debugowanie-usb-i-opcje-programistyczne-w-androidzie-42-43-i-44/n/3699/

  1. Podłączamy telefon do komputera na którym uruchomione jest Android Studio
  2. Z menu Run wybierz opcję Run.
  3. Na ekranie dialog "Choose Device" z którego wybieramy nasze urządzenie i klikamy OK.

Podstawowe pojęcia

Activity

Ta klasa reprezentuje pojedyńczy ekran w androidowej aplikacji. Layout ekranu ustwia się za pomocą komendy setContentView(layoutId). Z poziomy Activity kontrolujemy wyświetlanie treści oraz interakcje z użytwkownikiem.

W naszej aplikacji znajduje się jedno Activity - jest to klasa ButtonActivity

Layout

Layout to struktura w której deklarujemy elementy interfejsu użytkownika, które znajdują się na ekranie, wraz z ich układem przestrzennym oraz atrybutami (takimi jak rozmiar, kolor, wielkość czczionki itp.). Podstawowym layoutem w naszej aplikacji jest plik button_activity.xml znajdujący się w folderze res/layout naszego projektu.

View

View to pojedyńczy element interfejsu użytkownika taki jak Button (czyli przycisk), albo TextView (czyli pole tekstowe). W naszym projekcie zadeklarowany jest jeden element typu View - jest to Button znajdujący się w layoucie button_activity.xml

ViewGroup

ViewGroup to element interfejsu użytkownika służący do grupowania oraz lokowania elementów na ekranie. W naszej layoucie button_activity.xml występuje jeden element typu ViewGroup - jest to LinearLayout. Zajmuje on całe dostępne miejsce (dzięki zadeklarowaniu jego wysokości i szerokości poprzez atrybuty android:layout_width="match_parent" oraz android:layout_height="match_parent", a elementy które się w nim zjadują ustawiane są w jego centrum za sprawą zadeklarowania atrybutu android:gravity="center".