Проблему см. на изображении. Число 3,8 — это динамически генерируемое значение, отображаемое на значке уведомления приложения. Значок не меняет свой цвет автоматически, чтобы он контрастировал с фоном.
Приложение динамически генерирует значок в виде растрового изображения
Код: Выделить всё
int TEXT_COLOR = Color.WHITE;
Bitmap iconBitmap = BitmapUtils.textToBitmap(Text, TEXT_COLOR);
Icon icon = Icon.createWithBitmap(iconBitmap);
return new Notification.Builder(this, CHANNEL_ID)
.setCustomContentView(notificationLayout)
.setSmallIcon(icon)
.setContentIntent(pendingIntent)
.setPriority(Notification.PRIORITY_LOW)
.build();
Код: Выделить всё
public class BitmapUtils {
public static Bitmap textToBitmap(String text, int textColor) {
Paint paint = new Paint();
paint.setTextSize(100);
paint.setColor(textColor);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.LEFT);
paint.setTypeface(Typeface.DEFAULT_BOLD);
int width = 190;
int height = 190;
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
float x = (width - paint.measureText(text)) / 2;
Paint.FontMetrics metrics = paint.getFontMetrics();
float y = (height - metrics.ascent - metrics.descent) / 2;
canvas.drawText(text, x, y, paint);
return bitmap;
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-in-contr
Мобильная версия