recordatorio - notificaciones android studio 2018
Notificaciones Honeycomb-¿Cómo configurar largeIcon al tamaño correcto? (2)
Me resulta curioso por qué el método setLargeIcon en Notification.Builder solo acepta un mapa de bits, sin sobrecarga para proporcionar una identificación de recursos. Tal vez se hizo por razones de rendimiento, pero parece extraño, ya que setSmallIcon acepta una ID resitable.
Notification.Builder builder = new Notification.Builder(application);
// ....
builder.setLargeIcon(iconBitmap); // Requires a Bitmap
builder.setSmallIcon(iconResId); // Requires a drawable resource ID
Notification notification = builder.getNotification();
Lamentablemente, el mapa de bits proporcionado no está escalado en la notificación, por lo que el mapa de bits debe proporcionarse exactamente el tamaño correcto para la vista de notificación.
Suponiendo que necesito proporcionar las versiones xhdpi, hdpi, mdpi y ldpi del mapa de bits de largeIcon, ¿qué tamaños deben tener? No puedo ver ninguna mención en los documentos, o después de recorrer la red más amplia.
Todavía no se pudo verificar, pero API 11 introdujo los siguientes dimension públicos:
Debería poder usarlos para escalar su imagen antes de configurarla en la notificación.
Usé las notification_large_icon_height para crear un mapa de bits escalado
BitmapDrawable contactPicDrawable = (BitmapDrawable) ContactsUtils.getContactPic(mContext, contactId);
Bitmap contactPic = contactPicDrawable.getBitmap();
Resources res = mContext.getResources();
int height = (int) res.getDimension(android.R.dimen.notification_large_icon_height);
int width = (int) res.getDimension(android.R.dimen.notification_large_icon_width);
contactPic = Bitmap.createScaledBitmap(contactPic, width, height, false);
Y luego configuro el icono grande con esta bitamp escalada.