android - 如何在通知栏中的 setSmallIcon 中设置进度条?
问题描述
我一直在尝试在通知状态栏中设置一个圆形进度条。它应该是通知状态栏中的圆形进度条。我试图找到一种简单的方法来构建它,但没有什么真正有用的。
到目前为止我尝试过的 -
尝试创建一个动态位图并将其设置为通知小图标,但我读过的 setSmallIcon 不采用位图,只能设置 int 资源。
另一种方法是按照下面的代码中的定义动态设置 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 的电池状态。
我需要一些指导
解决方案
推荐阅读
- visual-studio-code - 所有文档的VS Code DocumentSelector?
- angular - 如何拦截 :enter & :leave Angular 中的动画并改变 Diff?
- python - Apache Beam python 流式写入每小时 avro 文件
- ios - 有什么方法可以定期在后台模式(iOS)下发送 HTTP 请求?
- java - 使用 NumberFormat 在 JTextFormattedField 上不设置文本
- visual-studio - 为什么 SSRS 在已经定义时要求定义查询参数?
- react-native - 如何在运行时在反应本机的字典对象数组中添加动态数据
- html - HTML 边框出现在单元格之外
- jenkins - 从 Jenkins 管道并行步骤收集数据
- file - 如何为用户提供在 xamarin 表单中选择文件夹的选项?