Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za...

16
Czujniki i listy

Transcript of Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za...

Page 1: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Czujniki i listy

Page 2: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Napisz program, który przekształca skrót państwa (znajdujący się na tablicach rejestracyjnych samochodu) na jego nazwę.

Program musi wykorzystywać komponent ListView.

Dane odnośnie skrótów i nazw Państw mają być przechowywane w dwóch tablicach np.

private String kraje[] = {„Polska”, „Niemcy”}

private String skrot[] = {„PL”, „DE”}

Page 3: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Zmodyfikuj poprzednie zadanie, by wykorzystywał tablicę ciągów zdefiniowaną w pliku zasobów strings.xml.

Odczytprivate String countries[];

countries =

getResources().getStringArray

(R.array.countries_array);

Wewnątrz strings.xml<string-array

name="countries_array">

<item>Polska</item>

<item>Anglia</item>

<item>Niemcy</item>

<item>Francja</item>

<item>Austria</item>

<item>Chorwacja</item>

<item>Ukraina</item>

<item>Węgry</item>

</string-array>

<string-array

name="shortcuts_array">

<item>PL</item>

<item>EN</item>

<item>DE</item>

<item>FR</item>

<item>A</item>

<item>HR</item>

<item>AU</item>

<item>H</item>

</string-array>

Page 4: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget.

Skorzystaj w tym celu z komponentów omówionych na wykładzie 03 Widgety oparte na listach (slajdy od 38).

Page 5: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Bazując na listach, napisz aplikację typu „lista zadań do zrobienia”.

Stwórz własny szablon wyglądu elementu listy, by zawierał tekst zadania oraz po kliknięciu umożliwiał oznaczenie go jako zrobione / nie zrobione.

Spróbuj wyszukać w internecie jak dodawać i usuwać elementy listy.

Page 6: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Uprawnienia

W Androidzie aby korzystać z większości elementów, należy poprosić system o dane uprawnienie.

Zmieniamy je w pliku AndroidManifest.xml

Listę uprawnień można znaleźć tutaj:http://developer.android.com/reference/android/Manifest.permission.html

Page 7: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Linia 21 i 22: sprawdzamy jakie mamy sensory dostępne w urządzeniu.Linia 24: do LogCata wypisujemy dostępne sensory (w 22 linijce możemy

filtrować po typie, np. tylko sensory lokalizacyjne, albo temperatury).

Page 8: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

1. Musimy zaimplementować interfejs SensorEventListener. Dzięki temu możliwe będzie podpięcie się pod wartości sensorów.

2. Przydadzą się różne zmienne (korzystamy z akcelerometru i magnetometru)

3. Pamiętaj o uprawnieniach.

Odczytujemy orientację telefonu

Page 9: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Za pomocą menagera sensorów podpinamy się pod dwa sensory – akcelerometr i czujnik pola magnetycznego.

Przypisuję też TextView na formie do zmiennych w programie.

Odczytujemy orientację telefonu

Page 10: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

W metodzie onResume() rejestruję aplikację jako krozystającą z czujników. W metodzie onPause() –

wyrejestrowuję.

Z racji interfejsu trzeba zaimplementować metody onAccuracyChanged() oraz onSensorChanged().

Pierwsza wywołuje się jeśli z jakichś powodów zmieni się dokładnosć sensora, druga – gdy zmieni się jego

wartość.

Odczytujemy orientację telefonu

Page 11: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Właściwe odczytanie orientacji przez funkcję getRotationMatrix() i getOrientation().

Uwzględnia ona dane z czujników i zwraca azymut, przechyl w poziomie i przechyl w pionie.

Odczytujemy orientację telefonu

Page 12: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Napisz prosty program typu poziomica. Zadbaj o prawidłowe wygładzanie wartości (wartości czujników bardzo szybko się zmieniają)

Odczytuj informacje co jakiś czas, a nie co ich zmianę

UWAGA! Na emulatorze nie da się tego przetestować, o ile nie skorzystamy z Sensor Simulator!

http://www.botskool.com/geeks/how-use-sensor-simulator-android-sdk-emulator

Page 13: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Napisz program typu labirynt. Za pomocą czujnika orientacji i czasu (sprawdź jak mierzyć czas w Androidzie) napisz program typu:„Idź przez 10 sekund na południowy wschód, potem 20 sekund na północ”.

Jeśli chcesz i jesteś w stanie – sprawdzaj liczbę kroków (trudne!) za pomocą skokowych zmian akcelerometru.

Page 14: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Zasada działania identyczna, zmienia się tylko rodzaj wykorzystywanego czujnika:

Page 15: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Napisz aplikację, która wyświetla użytkownikowi spokojną grafikę dopóki ten nie przybliży ręki do czujnika. Wtedy następuje podmiana grafiki na coś strasznego

Page 16: Czujniki i listy · Napisz prostą galerię zdjęć, w której zdjęcia będą przewijane za pomocą HorizontalScrollView widget. Skorzystaj w tym celu z komponentów omówionych

Za pomocą czujnika światła (TYPE_LIGHT) określaj jak jasno jest w pokoju. Przerób swoją latarkę tak, aby dostosowywała jasność nie za pomocą slidera, ale automatycznie.

Sprawdź jakie inne czujniki można wykorzystać: http://developer.android.com/guide/topics/sensors/sensors_environment.html