2015-07-15 10 views
5

Per qualche motivo non riesco a rendere questo concetto semplice funzionare su Android Wear. Voglio che la notifica su Wear abbia uno sfondo a tinta unita con il colore che preferisco. Questo è quello che sto cercando di fare:Android Wear: utilizzare il colore uniforme specificato per lo sfondo di notifica

NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
    builder 
      .setContentTitle("title") 
      .setSmallIcon(R.mipmap.ic_launcher) 
      .setContentText("Text") 
      .setColor(Color.YELLOW); 

    Notification notification = builder.build(); 
    notificationManager.notify(123456, notification); 

Come potete vedere, sto impostando il colore di notifica al giallo. E questo imposta lo sfondo sulla notifica in giallo sul telefono. Ma per qualche motivo, il colore di sfondo sulla notifica che vedo su Android Wear è verde. Si prega di vedere schermate allegate.

enter image description here

enter image description here

ho provato estendere costruttore di notifica con un WearableExtender, ma non ha un metodo di -come "setColor", solo "setBackground". Perché Wear ignora il colore di notifica specificato? E da dove prende quel colore di sfondo verde? Come sovrascrivo quel colore?

risposta

10

Sfondo verde dal colore dell'icona.

enter image description here

È possibile chiamare il metodo WearableExtender setBackground

int notificationId = 001; 

    Bitmap bitmap = Bitmap.createBitmap(320,320, Bitmap.Config.ARGB_8888); 
    bitmap.eraseColor(Color.YELLOW); 

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
    builder.setContentTitle("title") 
      .setSmallIcon(R.mipmap.ic_launcher) 
      .setContentText("Text") 
      .extend(new NotificationCompat.WearableExtender().setBackground(bitmap)); 

    NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this); 
    notificationManagerCompat.notify(notificationId , builder.build()); 

enter image description here

+0

Questo funziona ma perché 320x320 per un colore solido? Anche 1x1 funziona e salva un po 'di memoria. –