इस प्रभाव को प्राप्त करने के लिए एक आसान तरीका है Canvas.drawCircle()
उपयोग करने के लिए है और एक BitmapShader
:
BitmapShader s = new BitmapShader(myPhoto, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Paint p = new Paint();
p.setShader(s);
myCanvas.drawCircle(centerX, centerY, radius, p);
छाया करने के लिए बस रंग पर Paint.setShadowLayer()
फोन (यह केवल यदि आप एक गुप्त में प्रभाव आकर्षित काम करेंगे Bitmap
या यदि आपका View
सॉफ़्टवेयर परत का उपयोग करता है - View.setLayerType()
पर कॉल करके सेट करें -)।
Paint.Style.STROKE
शैली (जिसे आप Paint.setStyle()
पर कॉल करके सेट कर सकते हैं) का उपयोग करके सीमा को एक और सर्कल खींचकर खींचा जा सकता है।
अंत में आप अपने पहले सर्कल के शीर्ष पर एक सर्कल, अंडाकार या Path
ड्राइंग करके चमक खींच सकते हैं। आपको अपने पेंट पर LinearGradient
शेडर का उपयोग करने की आवश्यकता होगी और आपको चमक को क्लिप करने की भी आवश्यकता होगी। आप दो तरह से कर सकते हैं:
- आप एक
Bitmap
, जो है मैं क्या सिफारिश करेंगे में पूरे प्रभाव बना रहे हैं, बस रंग के Xfermode
एक new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
करने के लिए सेट।
- यदि आप सीधे स्क्रीन पर प्रभाव खींच रहे हैं तो आप गोलाकार क्लिप सेट करने के लिए बस
Canvas.clipPath()
का उपयोग कर सकते हैं। ध्यान दें कि यह केवल एंड्रॉइड 4.3 के रूप में हार्डवेयर त्वरण के साथ काम करेगा।
स्रोत
2013-09-05 17:46:14
मैं एक गोल कोने कार्यान्वयन पोस्ट करता हूं, उम्मीद है कि यह आपकी मदद करेगा, http://stackoverflow.com/a/19858771/1294681 – VinceStyling