Kod źródłowy do tej lekcji znajduje się tutaj. Rozpakuj go i zaimportuj. W katalogu z kodem źródłowym znajdą się podkatalogi oznaczone numerami. Są to po prostu kolejne wersje kodu, tworzonego w ramach przykładów. Możesz analizować kolejne kroki tworzenia aplikacji, lub od razu zabrać się za kod z katalogu o najwyższym numerku.
Przypuśćmy że mam taką sytuację, mam trzy napisy na ekranie i dla wszystkich chcę określić taki sam kolor czcionki, wielkość czcionki, ewentualnie inne parametry.
Mógłbym to robić osobno dla każdego komponentu ustawiając parametry w pliku layoutu danej aktywności. To więcej pracy niż to warte, a ponadto gdybym zechciał coś zmienić, musiałbym zmieniać dla każdego komponentu osobno. Każdy kto napisał choć jedną podstronę w HTML powinien doskonale rozumieć w czym rzecz. Podobnie jak w HTML, tak i tutaj możemy zdefiniować style i z ich użyciem stosować określone własności dla wielu komponentów naraz. Filozofia jest podobna do stosowanych przy tworzeniu stron internetowych plików css.
Zaczynam od stworzenia pliku XML ze stylem. Klikam PPM na katalogu values będącym podkatalogiem katalogu res. Wybieram new-->Android XML File. Pojawia mi się takie okno:
Podaję nazwę pliku w którym opiszę styl komponentów. Nazwałem go styl_napisow. Teraz w pliku wprowadzam kilka zmian. Dodaję dwa różne style napisów. Zawartość mojego pliku ze stylami:
<?xml
version="1.0"
encoding="utf-8"?>
<resources
xmlns:android="http://schemas.android.com/apk/res/android">
<style
name="wielki_napis">
<item
name="android:textSize">50dp</item>
<item
name="android:textColor">#0000FF</item>
</style>
<style
name="maly_napis">
<item
name="android:textSize">20dp</item>
<item
name="android:textColor">#FF0000</item>
</style>
</resources>
Jak widac określam wielkość
i kolor czcionek. Są dwa style – dla dużego niebieskiego napisu,
oraz mniejszego czerwonego. Można tutaj oczywiście określić
znacznie więcej rzeczy – np. szerokość i wysokość komponentu,
napis na nim, a nawet metodę która obsługuje kliknięcie
komponentu. W pliku layoutu dla danej aktywności dodaję do
komponentów nowy parametr: style, oraz wskazuję nazwę stylu sprzed
momentem stworzonego pliku:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="25dp"
android:layout_marginTop="35dp"
android:text="Napis
numer 1"
style="@style/wielki_napis"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="22dp"
android:text="Napis
numer 2"
style="@style/maly_napis"
/>
Efekt po uruchomieniu:
Style możemy stosować dla wszelakich komponentów, nie tylko dla napisów.
Ale te źródłowe to tak na odwal się przeklejone, że aż w oczy szczypie :P (zwłaszcza ten niebieski na czarnym tle)
OdpowiedzUsuńTeż tak uważam. Właśnie coś tam sobie skrobię na androida i od czasu do czasu pojawiają się pytania, na które poszukuję odpowiedzi w internecie. Tym oto sposobem szukając różnych rzeczy już niejeden raz trafiłam na tą właśnie stronę. Blog jest prowadzony bardzo fajnie, materiał jest zrozumiały, ale, na Litość Boską, tego kodu źródłowego nie da się czytać! Sądzę, że jest to tym bardziej trafna uwaga pod wątkiem dotyczącym styli. Autor wątku chwali się podobieństwem androidowych styli w xml-u do styli w html-u, to niech dobierze odpowiedni styl do kodu źródłowego wyświetlanego na swojej stronie! O to gorąco apeluję do Autora. Poza tym reszta na plus.
UsuńWiele razy miałem podobny problem, czyli np brązowe litery na czarnym tle :-) Rozwiązanie, to zaznaczenie tekstu i wtedy kolory się zmieniają na bardziej czytelne, Ale prawdę mówiąc taki dobór kolorów nie najlepiej świadczy o autorze :-)
UsuńJa mam taki problemik, że gdy wprowadzę jakiekolwiek zmiany, np. w tym pliku "style" - tak sobie go nazwałem, (czy nawet w poprzednich tematach, np. kolory) musiałem uruchamiać ponownie eclipse aby zmiany były widoczne w tym graficznym interfejsie aktywności. Jest jakiś sposób na to, aby tego nie robić za każdym wprowadzeniem zmian?
OdpowiedzUsuńspróbuj "ctrl+s" czyli zapisanie tego co zmieniłeś, Eclipse automatycznie to odświerzy.
Usuńspróbuj "ctrl+s" czyli zapisanie tego co zmieniłeś, Eclipse automatycznie to odświerzy.
UsuńDrodzy,
OdpowiedzUsuńnie rozumiem Was. Dostajecie za darmo fajny poradnik krok po kroku, gdzie użytkownik jest prowadzony za rączkę, można się z niego naprawdę sporo nauczyć. Pomyślcie, ile czasu autor musiał spędzić na przygotowaniu go.
Jak możecie czepiać się takich drobiazgów, jak kolor czcionki? Nieczytelne, wystarczy zaznaczyć myszką... A wytykanie błędów ortograficznych uważam za naprawdę gruby nietakt.
Na miejscu autora chyba zamknąłbym dostęp do kursu, skoro uczeń taki niewdzięczny. Nie zdziwię się, jeśli w końcu tak zrobi...
To nie jest czepianie się drobiazgów, tylko zwrócenie uwagi na niektóre elementy. Jeśli autor kursu to poprawi to jest to dla niego na plus, bo jego kurs jest jeszcze lepszy - a w internecie chodzi o o aby udostępnić jak najlepszą zawartość :)
UsuńKrótko, zwięźle i na temat - samo pokazanie możliwości fajne :)
OdpowiedzUsuńWarto poprawić tylko listing kodu :)
Podziękowania dla autora ! Dobra robota !
Kurs bardzo fajny. Ludzie którzy komentują literówki czy kolorki to po prostu internetowe sknery. Sami coś napiszcie to zobaczycie jak to jest udostępnić coś komuś za darmo nie mając czasu. To są pierdoly. To nie język polski. Tu chodzi o merytorycznej i materiały
OdpowiedzUsuńCiekawe informacje
OdpowiedzUsuńWarto jest zapoznać się z tak ciekawymi informacjami.
OdpowiedzUsuń