如何通过Android drawable level-list XML实现动态电量或信号图标变化?
- 内容介绍
- 相关推荐
本文共计1237个文字,预计阅读时间需要5分钟。
这个不是用来响应按钮点击或触摸变色的,而是依赖 `android:level` 动态切换子项——比如电量从 0 到 100,你给每个区间配一个 `item`。系统根据 `level` 自动选择匹配的 `drawable`。`state-list` 只认状态(如 `android:state_pressed`),不认数值,硬编码的 `level` 会完全没有响应。
常见错误现象:ImageView 死活不换图,或者只显示第一个 item;debug 时发现 setImageLevel() 调了但 UI 没变——大概率是 XML 里没写 android:maxLevel,或 Java/Kotlin 里传的 level 超出范围(0–10000 是合法范围,但你的 item 只定义了 0–4)。
本文共计1237个文字,预计阅读时间需要5分钟。
这个不是用来响应按钮点击或触摸变色的,而是依赖 `android:level` 动态切换子项——比如电量从 0 到 100,你给每个区间配一个 `item`。系统根据 `level` 自动选择匹配的 `drawable`。`state-list` 只认状态(如 `android:state_pressed`),不认数值,硬编码的 `level` 会完全没有响应。
常见错误现象:ImageView 死活不换图,或者只显示第一个 item;debug 时发现 setImageLevel() 调了但 UI 没变——大概率是 XML 里没写 android:maxLevel,或 Java/Kotlin 里传的 level 超出范围(0–10000 是合法范围,但你的 item 只定义了 0–4)。

