ChartProgressBar.java 文件源码

java
阅读 18 收藏 0 点赞 0 评论 0

项目:ChartProgressBar-Android 作者:
public void disableBar(int index) {

        final int barsCount = ((LinearLayout) this.getChildAt(0)).getChildCount();

        for (int i = 0; i < barsCount; i++) {

            FrameLayout rootFrame = (FrameLayout) ((LinearLayout) this.getChildAt(0)).getChildAt(i);

            int rootChildCount = rootFrame.getChildCount();

            for (int j = 0; j < rootChildCount; j++) {

                if ((int) rootFrame.getTag() != index)
                    continue;

                rootFrame.setEnabled(false);
                rootFrame.setClickable(false);

                View childView = rootFrame.getChildAt(j);
                if (childView instanceof LinearLayout) {
                    //bar
                    LinearLayout barContainerLinear = ((LinearLayout) childView);
                    int barContainerCount = barContainerLinear.getChildCount();

                    for (int k = 0; k < barContainerCount; k++) {

                        View view = barContainerLinear.getChildAt(k);

                        if (view instanceof Bar) {

                            Bar bar = (Bar) view;

                            LayerDrawable layerDrawable = (LayerDrawable) bar.getProgressDrawable();
                            layerDrawable.mutate();

                            ScaleDrawable scaleDrawable = (ScaleDrawable) layerDrawable.getDrawable(1);

                            GradientDrawable progressLayer = (GradientDrawable) scaleDrawable.getDrawable();

                            if (progressLayer != null) {

                                if (mProgressDisableColor > 0)
                                    progressLayer.setColor(ContextCompat.getColor(mContext, mProgressDisableColor));
                                else
                                    progressLayer.setColor(ContextCompat.getColor(mContext, android.R.color.darker_gray));
                            }
                        } else {
                            TextView titleTxtView = (TextView) view;
                            if (mProgressDisableColor > 0)
                                titleTxtView.setTextColor(ContextCompat.getColor(mContext, mProgressDisableColor));
                            else
                                titleTxtView.setTextColor(ContextCompat.getColor(mContext, android.R.color.darker_gray));
                        }
                    }
                }
            }
        }
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号