Finalna wersja kartki z kalendarza – DSP#18

Udało się! Doszedłem do momentu w którym biblioteka została ukończona. Może trudno w to uwierzyć, ale z każdym postem dotyczącym aplikacji dodawałem tylko kilka linii kodu. Dlatego posty na temat biblioteki zebrane razem mogą stanowić całkiem ciekawy tutorial, gdzie wszystko jest pokazane, łącznie z moim potknięciami. Ale do rzeczy, tak wygląda finalna (na ten moment) wersja kartki z kalendarza.

Finalna wersja kartki z kalendarza

Piszę na ten moment, ponieważ możliwe, że będzie się rozwijała, albo, że pojawią się jakieś błędy o których nie mam pojęcia. Bądź co bądź wydaje mi się, że dużo można jeszcze tutaj dorobić. Np przycisk do przesuwania daty w lewo, w prawo, możliwość wyświetlenia roku, możliwość poszerzenia ramki, etc. Noo ale do rzeczy, oto jak wygląda kodzik który dopisałem tym razem.

Mamy tutaj dwie metody, jedna służy do rysowania tekstu na środku ekranu, druga do pobierania nazwy miesiąca. Może najpierw o tej drugiej, jak widać wpada tutaj parametr int, na tej podstawie z klasy DateFormatSymbols jest pobierana nazwa według aktualnego Locale. Co ciekawe, Android ma swoją wersję tej metody, ale pojawiła się ona dopiero niedawno, dlatego nie zgadza się ze wszystkimi API które obsługuje. Główna metoda którą chciałem omówić jest nieco dłuższa, w niej wyliczana jest pozycja napisów, oraz są one drukowane na ekranie. Wyliczenie x to po prostu podzielenie rozmiaru płótna na pół, ustawienie formatowania tekstu, żeby wyświetlał się na środku, no i można wrzucać tekst. Z y problem jest nieco większy, tzn potrzeba nam dwóch wysokości, jednej dla dużej cyfry, drugiej dla napisu. Dlatego też dzielę pozostałe miejsce na 5. A następnie umieszczam cyfrę, oraz miesiąc na wysokości, która wizualnie najbardziej mi odpowiada (stąd te 3.1, 3.5 jako mnożniki). Znajduje się tam też jeden if, który na podstawie długości tekstu w miesiącu sprawdza na jaki rozmiar ustawić czcionkę dla miesiąca. Dla krótkich miesięcy wygląda to w ten sposób.

Finalna wersja kartki z kalendarza

To by było na tyle, finalna wersja biblioteki zrobiona. Noo dobra to nie jest tak do końca nomen omen koniec. Do zrobienia mam jeszcze małą aplikację demo gdzie będzie można sobie sobie wybrać kolor i datę i zobaczyć jak to wygląda (ta aplikacja trafi do sklepu Play). Do tego trzeba jeszcze zarejestrować bibliotekę tak, żeby była ogólnodostępna, oraz trochę ją wypromować, uzupełnić README na Githubie. A kod z związany z dzisiejszym wpisem dostępny jest tutaj.