我希望Notification
图标为1到1000之间的数字,具体取决于条件。
有没有办法动态地执行此操作(例如,从Icon
生成String
并在setSmallIcon()
中使用它),而无需手动将所有这些数字创建为图像文件并调用它们动态?
答案 0 :(得分:1)
不幸的是,我无法(我知道)在API级别23以下执行此操作。
在API级别23 + :
您可以使用Canvas.drawText()
从Bitmap
创建String
。
例如:
public Bitmap createBitmapFromString(String string) {
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setTextSize(50); // size is in pixels
Rect textBounds = new Rect();
paint.getTextBounds(string, 0, string.length(), textBounds);
Bitmap bitmap = Bitmap.createBitmap(textBounds.width(), textBounds.height(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawText(string, -textBounds.left,
textBounds.height() - textBounds.bottom, paint);
return bitmap;
}
之后,您可以使用此Icon
与Bitmap
创建Icon.createWithBitmap()
。
(此方法已在API级别23中添加)
然后将此Icon
传递给setSmallIcon()
。
(API级别23中也添加了setSmallIcon(Icon icon)
)