android prgoressBar setProgressDrawable 在4.0系统式正常,在2.3系统上不能正常使用的问题

上次在做一个电池电量的进度显示时,需要根据背景主题色来切换电池电量的进度的颜色,

但是在对prgoressBar的setProgressDrawable进行设置之后发现,在4.0系统上能够正常,而在2.3系统上就完全没有颜色了;

原实现方法:

  mBatteryPowerPercent.setProgressDrawable(this.getResources().getDrawable(R.drawable.progress_bar_layer));

问题原因:

  没有setBounds

解决方案:

    mBatteryPowerPercent.setProgressDrawable(this.getResources().getDrawable(R.drawable.progress_bar_layer2));
    Rect bounds = mBatteryPowerPercent.getProgressDrawable().getBounds();
    mBatteryPowerPercent.getProgressDrawable().setBounds(bounds);
    mBatteryPowerPercent.setProgress(m_BatteryPercent + 1);  //在setBounds之后需要进行Progress变化才能生效,有时若不加也可能不会显示颜色出来
    mBatteryPowerPercent.setProgress(m_BatteryPercent - 1);   //变化太少也可能会……,先加后减而不是先减后加,我想大家都应该懂的吧

原文地址:https://www.cnblogs.com/Shadowing/p/3476606.html