【问题标题】:How can I display numbers in status bar in Android?如何在 Android 的状态栏中显示数字?
【发布时间】:2019-06-28 10:44:09
【问题描述】:

我正在开发一个需要在状态栏中显示下载速度的应用程序。我试过使用notificationBuilder.setSmallIcon(),但它需要一个常量drawable作为参数。我希望数字每 3 秒更改一次。我见过很多应用程序在状态栏中显示一些数字,例如温度、下载百分比等。所以,肯定有办法。但我想不通。

【问题讨论】:

  • @Ikazuchi 这不是我想要的。我希望将不同的数字显示为通知图标。我在我的问题中添加了一个屏幕截图以供进一步演示
  • 如果有效请通知我
  • @AmalKG 我已经尝试了所有这些解决方案。我猜它们有点过时了。没有什么对我有用

标签: android android-notifications android-drawable statusbar


【解决方案1】:

您可以通过将文本字符串转换为可绘制的位图来实现。

使用以下方法将文本转换为位图。并在通知生成器中使用返回位图作为 smallIcon。

public Bitmap textAsBitmap(String text, float textSize, int textColor) {
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setTextSize(textSize);
    paint.setColor(textColor);
    paint.setTextAlign(Paint.Align.LEFT);
    float baseline = -paint.ascent(); // ascent() is negative
    int width = (int) (paint.measureText(text) + 0.5f); // round
    int height = (int) (baseline + paint.descent() + 0.5f);
    Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(image);
    canvas.drawText(text, 0, baseline, paint);
    return image;
}

【讨论】:

  • setSmallIcon 不接受 BitmapIcon。具有 setSmallIcon(icon) 的 notificationbuilder 现在已弃用
猜你喜欢
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 2021-01-04
相关资源
最近更新 更多