0
我通過繪製兩條弧線繪製一條帶邊框的弧線,一條弧線比另一條弧線稍大。Android Canvas繪圖弧邊框
問題在於「略大」,這可能會導致邊界不會始終保持全部。
無論我繪製具有相同的半徑的圓弧,我只是讓它通過添加程度開始和二度結束(必須確保在弧兩端的邊框外是相等的)並增加筆畫寬度。
在提供的圖片中,較厚的邊框邊緣是最小的,我可以在它仍然可見的情況下製作。 (離內弧-1度)
我已經考慮繪製弧形輪廓,用四個獨立調用兩條直線來表示兩端和兩條弧線。這對我想達到的效果似乎相當低效。
我想知道如果任何人有任何建議,我還可以如何繪製邊界即使最小化繪製/畫布旋轉調用的次數,如果可能的話。對於當前的解決方案
相關的代碼示例:
Paint mOutlinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
Paint mFillPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mFillPaint.setStyle(Style.STROKE);
mFillPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
mFillPaint.setColor(Color.TRANSPARENT);
mFillPaint.setStrokeWidth(mValueWidth);
mOutlinePaint.setStyle(Style.STROKE);
mOutlinePaint.setStrokeWidth(mBorderWidth);
mOutlinePaint.setColor(Color.WHITE);
mRect.set(mHalfXSubRadius, mHalfYSubRadius, mHalfXAddRadius, mHalfYAddRadius);
canvas.drawArc(mRect, ARC_START-1, MAX_ARC+2, false, mOutlinePaint);
canvas.drawArc(mRect, ARC_START, MAX_ARC, false, mFillPaint);