czwartek, 21 czerwca 2018

Konfiguracja widgetu czyli metadane

Metadane określają podstawowe parametry widgetu:
  • minWidth, minHeight - minimalna, domyślna przestrzeń zajmowana przez widget
    •  widgety zajmują na ekranie pewne zdefiniowane komórki (tak samo ustawiając ikonki aplikacji na ekranie też nie możemy ich mieć gdziekolwiek), jeśli podana wartość nie będzie odpowiadała wielkości pełnych komórek, zostanie zaokrąglona w górę, tak aby zająć pełną liczbę zdefiniowanych komórek
    • minimalna wartość nie może być większa niż 4x4 komórki (żeby zachować przenoszalność widgetu na różne urządzenia)
  •  minResizeWidth, minResizeHeight - wielkość, poniżej której widget nie będzie nadawał się do użycia
    • ustawienie tych parametrów oznacza, że użytkownik będzie mógł zmienić wielkość widgetu na mniejszy niż domyślny (ale nie mniejszy niż podany w tym parametrze)
  •  updatePeriodMillis - częstotliwość z jaką widget będzie wysyłał żądanie aktualizacji (onUpdate(), AppWidgetProvider )
    • podana wartość jest tylko szacunkowa, system wykona aktualizację mniej więcej w tym czasie, jeśli będzie mógł
    • trzeba ostrożnie dobrać ten parametr, żeby nie zużywać za dużo baterii 
    • sysem wybudzi urządzenie z uśpienia gdy nadejdzie czas aktualizacji ustawiony w tym parametrze
    • żeby uniknąć budzenia urządzenia, można ustawić aktualizację opartą na alarmie "niebudzącym" urządzenia
      • korzystając z AlarmManager ustaw alarm przez Intent otrzymywany przez AppWidgetProvider
      • ustaw alarmowi typ ELAPSED_REALTIME lub RTC
      • ustaw updatePeriodMillis = 0
  • initialLayout - ścieżka do pliku określającego wygląd (layout) widgetu
  • configure - aktywność, która zostanie uruchomiona po dodaniu widgetu w celu umożliwienia użytkownikowi skonfigurowania go
  • previewImage - podgląd przykładowo skonfigurowanego widgetu dla użytkownika, dostępny dla niego gdy wybiera widgety
    • jeśli nie ma ustwionego tego parametru, jako podgląd wyświetlana będzie ikona aplikacji
  • autoAdvanceViewId - id widoku "rozszerzonego"
    • dla widgetów, które mogą być rozbudowywane (advanceable)
    • informuje host co powinno być rozbudowywane
    • host będzie wykonywał akcję advance() gdy będzie to sensowne, czyli np. tylko gdy widget będzie widoczny
  • resizeMode - określa zasady zmiany rozmiaru widgetu - horizontal, vertical, none
  • widgetCategory - określa gdzie może być wyświetlany widget - home_screen, keyguard (tylko do Android 5.0), both

Brak komentarzy:

Prześlij komentarz