阴影仅在外部曲线上

时间:2012-09-14 08:27:54

标签: android android-canvas

我的目标是创建一个类似于饼图的东西,但我不能完全正确的阴影。我希望阴影只在每个段的外部曲线上,而不是通向中心的线。除了编写类似于paint.setShadowLayer()的自定义函数之外,我有没有办法实现这个目标? 这就是我到目前为止所做的:

        float mStart = 0;
        RectF mOvals = new RectF(mWidth / 15 + mGraphParams.leftMargin, mHeight / 15 + mGraphParams.topMargin,
                mWidth - mWidth / 15 - mGraphParams.rightMargin, mHeight - mHeight / 15 - mGraphParams.bottomMargin);
        float max = 0;
        for (int i = 0; i < data.size(); i++) {
            max = max + data.get(i);
        }

        for (int i = 0; i < data.size(); i++) {
            if (shadow) {
                paint.setShadowLayer(shadowRadius, shadowDx, shadowDy, this.pieColors.get(i));
            }
            float mSweep = (float) 360 * ((float) data.get(i) / max);
            paint.setStyle(Style.FILL_AND_STROKE);
            paint.setColor(this.pieColors.get(i));
            canvas.drawArc(mOvals, mStart, mSweep, true, paint);

            mStart = mStart + mSweep;

1 个答案:

答案 0 :(得分:1)

这是不可行的。

您必须覆盖setShadowLayer()

抱歉