PDA

Ver la Versión Completa : [ CONSULTA ] Notificacion Custom Icon


jtsamper
28/05/13, 20:36:16
Hola a todos a ver si alguien me puede ayudar.

Estoy generando un Bitmap y este quiero poder usarlo en Notificaciones

NotificationManager NManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Bitmap p2 = writeOnDrawable(R.drawable.transparente, "Hola", "Hola2");
Notification noti = new NotificationCompat.Builder(
getApplicationContext()).setContentTitle("Content Title")
.setContentText("Content Text").setLargeIcon(p2)
.build();
NManager.notify(123, noti);

Esta es la funcion encargada de generar el BITMAP y de introducir los textos que le paso...

public Bitmap writeOnDrawable(int drawableId, String text1, String text2) {
Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId)
.copy(Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
paint.setStyle(Style.FILL);
paint.setColor(Color.WHITE);
paint.setTextSize(16);
Canvas canvas = new Canvas(bm);
canvas.drawText(text1, bm.getWidth() / 4, bm.getHeight() / 4, paint);
canvas.drawText(text2, 0, bm.getHeight() / 2 + bm.getHeight() / 4,
paint);
return new BitmapDrawable(getResources(), bm).getBitmap();
}

Con la notificacion anterior no me la muestra, razon ni idea, pero cuando le pongo en el constructor .setSmallIcon(R.drawable.transparente) si me aparece, pero no el personalizado, Salvo que abra las notificaciones...

Un saludo y Gracias

kriogeN
28/05/13, 21:41:57
El comportamiento es el correcto.

El SmallIcon es para lo que se muestra en la barra, y el LargeIcon en la lista de notificaciones (a partir de HoneyComb, en versiones anteriores también sale el SmallIcon).

La misión del NotificationCompat es tener una notificación única para todas las versiones de Android, pero que para versiones más avanzadas tendrá comportamientos mejorados.

Por ejemplo a partir de HoneyComb tiene en cuenta el LargeIcon, y a partir de JellyBean tiene en cuenta los addAction.

jtsamper
28/05/13, 23:12:15
Entonces como puedo hacer que me funcione???
PAra cada api una forma??

P.D. gracias por contestar

kriogeN
28/05/13, 23:41:30
Usando todo, cada versión de Android sólo usará lo que esté disponible en esa versión. Es la gracia del NotificationCompat.

jtsamper
29/05/13, 10:58:54
Entonces no puedo hacer nada.

Gracias KriogeN