studio - notification builder android
El diseƱo XML de la notificaciĆ³n personalizada de Android 5+ con RemoteViews, establece el tinte de icono correcto para ImageButton (5)
Lo sentimos, pero según mi conocimiento, las ROM personalizadas tienen diseños de sistemas y configuraciones independientes y no son oficiales también.
Por lo tanto, no es posible admitir Custom ROM sin conocer su diseño. Y las API de Android son para soportar ROM''s oficiales.
¡¡Espero eso ayude!!
Mi aplicación está utilizando un diseño de notificación personalizado con RemoteViews.
Para mostrar texto, el diseño utiliza los siguientes estilos de sistema:
android:TextAppearance.Material.Notification.Title
android:TextAppearance.Material.Notification
Esto funciona bien.
Sin embargo, el estilo TextAppearance no se puede usar para establecer el valor de android:tint
, por lo que tuve que codificar el color.
Que yo sepa, no hay un estilo de sistema especial para configurar el tinte ImageButton de notificación.
Los colores codificados funcionan bien en los sistemas Android 5+ actuales, pero algunos usuarios instalan ROM personalizadas con temas oscuros personalizados, y la notificación parece incorrecta, es decir, iconos negros sobre fondo negro.
¿Hay alguna forma de obtener el icono de notificación del sistema / color del botón de imagen y aplicarlo desde un diseño XML?
O tal vez hay otra manera de lograr esto?
Prueba este ejemplo:
Definición de notificación:
// Declare variable
public static Bitmap icon;
// Assign value but this line can be different depends on current
// android sdk vesion ...
icon = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.YOUR_IMAGE);
mBuilder = new NotificationCompat.Builder(this);
mBuilder.setShowWhen(false);
mBuilder.setDefaults(Notification.DEFAULT_ALL);
mBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
mBuilder.setSmallIcon(R.drawable.image1); // One way to load img
mBuilder.setContentText("this text not visible");
mBuilder.setLargeIcon(icon);// This is the line
mBuilder.setPriority(Notification.PRIORITY_DEFAULT);
mBuilder.setContent(contentNotifySmall); // ORI
//mBuilder.setAutoCancel(false);
mBuilder.setCustomBigContentView(contentNotify);
Configuré la variante pequeña y grande para cualquier caso, esto es importante.
Puede utilizar un servicio de lista de notificationlistenerservice para obtener una notificación activa. Esto devuelve una lista de StatusBarNotifications, entonces solo:
StatusBarNotifcation sBNotification = activeNotifications[0];
Notification notification = sBNotification.getNotification();
int argbColor = notification.color;
Si cambia ImageButton a ImageView en su diseño, puede actualizarlo con
RemoteViews remoteView = getRemoteViews(context);
// load base icon from res
Bitmap baseIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.base_icon);
// edit Bitmap baseIcon any way for your choose
Bitmap editedBitmap = ...
// update notification view with edited Bitmap
remoteView.setImageViewBitmap(R.id.button_icon, edited);
PS puedes editar Bitmap de esta manera: https://.com/a/5935686/7630175 o de cualquier otra forma
Espero que sea de ayuda
para el fondo puedes probar estos atributos ...
app:backgroundTint="@color/pay"
---------O-------------
android:tint="@color/white"