मैं एक SweepGradient के रूप में परिभाषितएंड्रॉयड SweepGradient
circle_paint.setShader(new SweepGradient(getWidth()/2, getHeight()/2, new int[] { circle_start_color, circle_end_color}, new float[] { 0f, 1f}))
एक कट्टर परिभाषित यह अच्छी तरह से workes रूप
canvas.drawArc(circle_bounds, circle_start_perc*360f, circle_end_perc*360f, true, circle_paint);
के लिए आवेदन किया है, लेकिन मैं मेहराब की जरूरत है स्क्रीन के ऊपर से बनाना शुरू करने के, यानी
canvas.drawArc(circle_bounds, ((circle_start_perc*360f)-90f)%360, circle_end_perc*360f, true, circle_paint);
समस्या यह है कि स्वीपग्रेडेंट अभी भी 0 डिग्री से शुरू होता है, और मुझे इसे शुरू करने की आवश्यकता है 270 डिग्री (चाप के चित्रण पर किए गए अनुवाद के समान)। दूसरे शब्दों में यदि मेरे पास सफेद से नीले रंग का ढाल है, तो मुझे आर्क पेंट किए गए नीले रंग के आखिरी हिस्से में सफेद रंग की चाप के शीर्ष की आवश्यकता होती है। मैं यह कैसे कर सकता हूँ?
धन्यवाद। मैंने आर्क को खींचा और कैनवास को बहाल करने से पहले कैनवास को घुमाया, बाद में एक आकर्षण की तरह काम किया :) – BOENDAGGER
शेडर रोटेशन एक उत्कृष्ट सुझाव था। आपको 'save'/'restore' के साथ @BOENDAGGER ने क्या किया है, इसे करने से आपको राहत मिलती है। एक बार शेडर रोटेशन सेट करें और आप कर लेंगे। – bcorso