Как я могу отображать числа в строке состояния в Android? - PullRequest
0 голосов
/ 28 июня 2019

enter image description here Я работаю над приложением, в котором мне нужно показать скорость загрузки в строке состояния. Я попытался использовать notificationBuilder.setSmallIcon(), но он принимает константу в качестве параметра. Я хочу, чтобы номер менялся каждые 3 секунды. Я видел много приложений, которые показывают некоторое число в строке состояния, например, температуру, процент загрузки и т. Д. Итак, есть способ наверняка. Но я не могу понять это.

1 Ответ

0 голосов
/ 28 июня 2019

Этого можно добиться, преобразовав текстовую строку в растровое для рисования.

Используйте метод ниже, чтобы преобразовать ваш текст в растровое изображение. И используйте растровое изображение возврата как 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;
}
...