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); //变化太少也可能会……,先加后减而不是先减后加,我想大家都应该懂的吧