円グラフに似たものを作成することを目指していますが、シャドウイングがうまくできません。中心につながる線ではなく、各セグメントの外側の曲線に影を付けたいです。に似たカスタム関数を書く以外にそれを達成できる方法はあり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;