状态栏中的Android通知:使用文本而不是小图标?

问题描述 投票:0回答:1

使用Notification.Builder,有

setSmallIcon()
功能可以设置状态栏中使用的图标。

就我的目的而言,我不需要图标,而是想要文本(数字更精确),就像系统放置在那里的电池电量百分比指示一样。

我看不出有什么办法可以做到这一点,而且我有一种沉重的感觉,我需要为每个可能的数字(包括正数和负数)使用不同的图标。 请告诉我我错了!

android android-notifications
1个回答
0
投票

您可以使用此功能绘制位图

 fun createTemperatureBitmap(context: Context, temperature: String): Bitmap {
    val size = 48 
    val scale = context.resources.displayMetrics.density
    val bitmap = Bitmap.createBitmap((size * scale).toInt(), (size * scale).toInt(), Bitmap.Config.ARGB_8888)
    val canvas = Canvas(bitmap)

    val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
        color = Color.WHITE
        textSize = 24 * scale
        textAlign = Paint.Align.CENTER
    }

    val x = bitmap.width / 2f
    val y = bitmap.height / 2f - (paint.descent() + paint.ascent()) / 2
    canvas.drawText(temperature, x, y, paint)

    return bitmap
}

要将其添加为图标,您必须使用

val iconBitmap = createTemperatureBitmap(context, temperature)

.setSmallIcon(IconCompat.createWithBitmap(iconBitmap))

*仅适用于 api M 及更高版本

© www.soinside.com 2019 - 2024. All rights reserved.