2014-07-19 23 views
7

Çalışabileceğim kadarıyla, Android Wear uygulamasında bir bildirim için arka plan resmini ayarlamanın iki yolu vardır. Kayıt için, her ikisi de şu şekilde başlar: bildirimi ayarlamak içinAndroid Wear bildiriminde nasıl net bir arka plan resmi görüntülenir?

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

. Ayrıca bitmap'un uygun boyutlu bir görüntü için başlatılmış olduğunu varsayalım (başka bir sorun olsa da).

Yöntem 1:

bob.setLargeIcon(bitmap); 

Bu çalışır, ancak AFAICT bitmap hep bulanık-out bildirimin arka planda, kendi boyutu.

Yöntem 2:

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

Bu bit eşlem temizler ancak giyilebilir üzerinde ekstra bir "sayfa", bitmap dışındaki boş bir sayfa ekleme talihsiz yan etkisi yoktur. Sanırım burada düşünmek, görüntüyü kullanıcıya göstermeye çalıştığınızdır - ama ben değilim, sadece bulanık olmayan bir arka plan istiyorum.

Bunu gerçekleştirmenin bir yolu var mı?

cevap

6

yerine WearableExtender yöntemini kullanarak setBackground(Bitmap) yöntemini kullanın. Bulanık olmayan arka plan bitmapini ayarlayacaktır.

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

Mükemmel! Gelecekte başvurmak için, eğer * setLargeIcon() 'işlevini kullanmak istiyorsanız, bunu devre dışı bırakabilirsiniz ... ancak bunun yerine' WearableExtender.setContentIcon() 'diyerek eşdeğer bir işlevsellik elde edebilirsiniz. – String

+0

evet, 'setBackground()', giyilebilir cihazdaki "bulanık" 'setLargeIcon()' arka planının yerini alacak. Yani, setLargeIcon() 'ıniz bir iletişim görüntüsü veya başka bir resim ise - sadece setBackground'unu kullanın ve başka bir şey eklemenize gerek yoktur. Ancak içeriğinizi açıklayan bazı bilgilendirici simgeleriniz varsa - bunu setContentIcon'a ekleyebilirsiniz :) Bonus: Bildiriminizi Android Wear'da tıklanabilir yapmak istiyorsanız, buna bir eylem atayabilirsiniz. “WearableExtender” daki “setContentAction (int)” yöntemi, eylemi verilen kartla + birleştirir + bu eylemin simgesi, contentIcon yerine gösterilir. –

+0

'setBackground()' hala bulanık, sadece daha az. Görüntü kareye kırpılır, daha büyükse 400x400 değerine kadar ölçeklenir, daha sonra ekranın her bir yüzüne ekran boyutunun% 20'si kadar yapışacak şekilde gerilir. Matematik, 285x285'ten daha büyük ekranlara sahip saatler için bulanık arka plan görüntüleri anlamına gelir. – Karu