Android筆記:根據進度代碼改變progressbar背景顏色,ClipDrawable,LayerDrawable,setProgressDrawable


作個筆記,主要是須要使用ClipDrawable、LayerDrawable:java

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);
}
相關文章
相關標籤/搜索