2014-07-19 9 views
7

Z tego co wiem, istnieją dwa sposoby ustawienia obrazu tła powiadomienia w Androidzie Wear. Dla zapisu, oba zaczynają się od:Jak wyświetlić wyraźny obraz tła w powiadomieniu na temat systemu Android Wear?

Bitmap bitmap; 
    Notification.Builder bob = new Notification.Builder(this) 
      .setContentTitle(title) 

... i tak dalej, aby skonfigurować powiadomienie. Załóżmy także, że bitmap został zainicjowany na obraz o odpowiednim rozmiarze (choć jest to inny problem).

Metoda 1:

bob.setLargeIcon(bitmap); 

To działa, ale AFAICT bitmap zawsze zamazane-out w tle powiadomienia, niezależnie od jego wielkości.

Metoda 2:

bob.setStyle(new Notification.BigPictureStyle().bigPicture(bitmap)); 

ta czyści się bitmapę, ale ma niefortunny efekt uboczny wstawienie dodatkowego „stronę” w noszeniu, strona, która jest puste z wyjątkiem bitmapy. Przypuszczam, że myślenie tutaj polega na tym, że próbujesz pokazać obraz użytkownikowi - ale nie jestem, chcę tylko nierozmywalnego tła.

Czy istnieje sposób, aby to osiągnąć?

Odpowiedz

6

Należy użyć metody setBackground(Bitmap) od WearableExtender zamiast setLargeIcon(Bitmap). Ustawi ona bitmapę tła, która nie będzie rozmyta.

Notification.Builder wearableBuilder = new Notification.Builder(context) 
    ... 
    .extend(new WearableExtender().setBackground(bitmap)); 
+0

Idealny! Na przyszłość, jeśli * także * chcesz użyć 'setLargeIcon()', wydaje się, że to wyłącza ... ale możesz uzyskać równoważną funkcjonalność, nazywając 'WearableExtender.setContentIcon()'. – String

+0

tak, 'setBackground()' zastąpi "rozmyte" '' setLargeIcon() 'tło na Wearable. Więc jeśli twój 'setLargeIcon()' jest jakimś kontaktowym obrazem lub innym takim obrazem - wystarczy użyć 'setBackground' i nie trzeba dodawać niczego więcej. Ale jeśli masz jakąś informacyjną ikonę, która opisuje twoją zawartość - możesz dodać ją w 'setContentIcon' :) Bonus: Jeśli chcesz, aby twoje powiadomienie było klikalne na Androidzie Wear, możesz przypisać do niego akcję. Metoda 'setContentAction (int)' na 'WearableExtender' spowoduje" scalenie "danej akcji z kartą + ikona tej akcji zostanie wyświetlona zamiast contentIcon. –

+0

'setBackground()' jest nadal rozmyte, po prostu mniej. Obraz zostanie przycięty do kwadratu, a następnie zmniejszony do rozmiaru 400 x 400, jeśli jest większy, a następnie rozciągnięty, aby wystawać z każdej strony ekranu o 20% rozmiaru ekranu. Matematyka oznacza rozmyte obrazy tła dla zegarków o ekranach większych niż 285x285. – Karu

Powiązane problemy