首页 > 解决方案 > 如何在通知栏中的 setSmallIcon 中设置进度条?

问题描述

我一直在尝试在通知状态栏中设置一个圆形进度条。它应该是通知状态栏中的圆形进度条。我试图找到一种简单的方法来构建它,但没有什么真正有用的。

到目前为止我尝试过的 -

  1. 尝试创建一个动态位图并将其设置为通知小图标,但我读过的 setSmallIcon 不采用位图,只能设置 int 资源。

  2. 另一种方法是按照下面的代码中的定义动态设置 int 资源,这很好用,但这里的问题是我无法使循环进度条的 100 个状态来显示 0-100 范围内的进度。作为概念证明,我将根据从 viewmodel 收到的 0-5 之间的值更改五个图标


     myViewModel.getMeraki().observe(this,{
               Log.d("NotificationValue","Meraki ${it}")
               val merakiNotification = NotificationCompat.Builder(this,CHANNEL_1_ID).apply {
                   setContentTitle("Meraki ${it}")
                   val icon = resources.getIdentifier("ic_power_$it", "drawable", packageName)
                   setSmallIcon(icon)
                   priority = NotificationCompat.PRIORITY_DEFAULT
               }
   
   //            val PROGRESS_MAX = 100
               NotificationManagerCompat.from(this).apply {
   //                merakiNotification.setProgress(PROGRESS_MAX, it, false) 
   //                    .setProgress(0, 0, false)
                   notify(1, merakiNotification.build())
               }
   
           }) 

正如您在下面看到的我当前实现工作的输出。

我很确定应该有一种简单的方法来做我想做的事情,因为 android 在状态栏中使用电池图标并显示 0-100 的电池状态。

我需要一些指导

在此处输入图像描述

标签: androidkotlinnotificationsprogress-bar

解决方案


推荐阅读