做个笔记,主要是需要使用ClipDrawable、LayerDrawable:
private void setProgressBg(int progress) { int a = progress * 255 / 100; int color = Color.argb(a, 255, 90, 147); ColorDrawable colorDrawable = new ColorDrawable(); colorDrawable.setColor(color); ClipDrawable clipDrawable = new ClipDrawable(colorDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); Drawable drawable = getResources().getDrawable(R.color.transparent); Drawable[] layers = new Drawable[]{drawable,clipDrawable}; LayerDrawable layerDrawable = new LayerDrawable(layers); layerDrawable.setDrawableByLayerId(0,drawable); layerDrawable.setDrawableByLayerId(1,clipDrawable); progressBar.setProgressDrawable(clipDrawable); progressBar.setProgress(0); progressBar.setProgress(progress); Loger.d("Vote投票", "result = " + progress); Loger.d("Vote投票", "a = " + a); }
时间: 2024-10-24 18:23:02