Android 信号图标处理

9 阅读1分钟

Drawable 支持整合多张图片到一起,根据level去显示不同的图片效果

比如我们需要处理手机移动信号图标,一般信号有4格效果,根据不同的信号强弱显示不同的图片

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:minLevel="0" android:maxLevel="0" android:drawable="@drawable/stat_sys_signal_0" />
    <item android:minLevel="1" android:maxLevel="1" android:drawable="@drawable/stat_sys_signal_1" />
    <item android:minLevel="2" android:maxLevel="2" android:drawable="@drawable/stat_sys_signal_2" />
    <item android:minLevel="3" android:maxLevel="3" android:drawable="@drawable/stat_sys_signal_3" />
    <item android:minLevel="4" android:maxLevel="4" android:drawable="@drawable/stat_sys_signal_4" />
    <item android:minLevel="10" android:maxLevel="10" android:drawable="@drawable/stat_sys_signal_0" />
    <item android:minLevel="11" android:maxLevel="11" android:drawable="@drawable/stat_sys_signal_1" />
    <item android:minLevel="12" android:maxLevel="12" android:drawable="@drawable/stat_sys_signal_2" />
    <item android:minLevel="13" android:maxLevel="13" android:drawable="@drawable/stat_sys_signal_3" />
    <item android:minLevel="14" android:maxLevel="14" android:drawable="@drawable/stat_sys_signal_4" />
    <item android:minLevel="15" android:maxLevel="15" android:drawable="@drawable/stat_sys_signal_4" />
    <item android:minLevel="90" android:maxLevel="90" android:drawable="@drawable/stat_sys_r_signal_0" />
    <item android:minLevel="91" android:maxLevel="91" android:drawable="@drawable/stat_sys_r_signal_1" />
    <item android:minLevel="92" android:maxLevel="92" android:drawable="@drawable/stat_sys_r_signal_2" />
    <item android:minLevel="93" android:maxLevel="93" android:drawable="@drawable/stat_sys_r_signal_3" />
    <item android:minLevel="94" android:maxLevel="94" android:drawable="@drawable/stat_sys_r_signal_4" />
    <item android:minLevel="95" android:maxLevel="95" android:drawable="@drawable/stat_sys_r_signal_4" />
    <item android:minLevel="99" android:maxLevel="99" android:drawable="@drawable/stat_sys_signal_null" />
</level-list>

0-4为一组图片,10-15为一组图片,90-99为一组图片,支持多种场景

通过设置不同的level显示图片

ImageView imageView = findViewById(R.id.image);
imageView.setImageLevel(12);