ठीक तो ऐसा लगता है कि DrawTextOnPath एक छोटे से नीचे 1.0f
फ़ॉन्ट आकार के साथ अब टूट समाधान सब कुछ पैमाने पर करने, आकर्षित पाठ तो इसे छोटा वापस नीचे जाता है।
डेमो परियोजना म drawTitle विधि इस से बदल जाएगा:
private void drawTitle(Canvas canvas) {
canvas.drawTextOnPath(upperTitle, upperTitlePath, 0.0f, 0.02f, unitPaint);
canvas.drawTextOnPath(lowerTitle, lowerTitlePath, 0.0f, 0.0f, unitPaint);
canvas.drawTextOnPath(unitTitle, unitPath, 0.0f, 0.0f, unitPaint);
canvas.drawPath(unitPath,unitPaint);
}
यह करने के लिए:
private void drawTitle(Canvas canvas) {
//Save original font size
float originalTextSize = unitPaint.getTextSize();
// set a magnification factor
final float magnifier = 100f;
// Scale the canvas
canvas.save();
canvas.scale(1f/magnifier, 1f/magnifier);
// create new rects and paths based on the new scale
unitRect = new RectF();
unitRect.set((faceRect.left + unitPosition) * magnifier, (faceRect.top + unitPosition) * magnifier, (faceRect.right - unitPosition) * magnifier, (faceRect.bottom - unitPosition) * magnifier);
unitPath = new Path();
unitPath.addArc(unitRect, 180.0f, 180.0f);
titleRect = new RectF();
titleRect.set((faceRect.left + titlePosition) * magnifier, (faceRect.top + titlePosition) * magnifier, (faceRect.right - titlePosition) * magnifier, (faceRect.bottom - titlePosition) * magnifier);
upperTitlePath = new Path();
upperTitlePath.addArc(titleRect, 180.0f, 180.0f);
titleRect = new RectF();
titleRect.set((faceRect.left + titlePosition) * magnifier, (faceRect.top + titlePosition) * magnifier, (faceRect.right - titlePosition) * magnifier, (faceRect.bottom - titlePosition) * magnifier);
lowerTitlePath = new Path();
lowerTitlePath.addArc(titleRect, -180.0f, -180.0f);
// increase the font size
unitPaint.setTextSize(originalTextSize * magnifier);
// do the drawing of the text
canvas.drawTextOnPath(unitTitle, unitPath, 0.0f, 0.0f, unitPaint);
canvas.drawTextOnPath(upperTitle, upperTitlePath, 0.0f, 0.02f, unitPaint);
canvas.drawTextOnPath(lowerTitle, lowerTitlePath, 0.0f, 0.0f, unitPaint);
// bring everything back to normal
canvas.restore();
unitPaint.setTextSize(originalTextSize);
canvas.drawPath(unitPath, unitPaint);
}
क्या आप पूरी तरह से सुनिश्चित हैं कि पथ सही है? पथ का स्रोत क्या है? –
यह वही ऐप है जो दोनों उपकरणों पर चल रहा है। आप तस्वीर में पथ देख सकते हैं। उपरोक्त कोड की अंतिम 2 पंक्तियां आंतरिक सर्कल टेक्स्ट और भरे अर्द्ध सर्कल हैं। – Kuffs