मैं एक पेंट में एक पाठ आकर्षित करना चाहता हूं। एक कस्टम फॉन्ट ( पूर्व हेल्वेटिका ) और बोल्ड के साथ इसे कैसे आकर्षित करें ? मैं एक सिस्टम फ़ॉन्ट का उपयोग करने और उसे परिसंपत्तियों से नहीं बनाने के लिए प्राथमिकता दूंगा। धन्यवाद।
मैं एक पेंट में एक पाठ आकर्षित करना चाहता हूं। एक कस्टम फॉन्ट ( पूर्व हेल्वेटिका ) और बोल्ड के साथ इसे कैसे आकर्षित करें ? मैं एक सिस्टम फ़ॉन्ट का उपयोग करने और उसे परिसंपत्तियों से नहीं बनाने के लिए प्राथमिकता दूंगा। धन्यवाद।
जवाबों:
यदि "कस्टम फ़ॉन्ट" से आपका मतलब है कि आप एक संपत्ति के रूप में आपूर्ति कर रहे हैं, तो निम्न कोड काम करना चाहिए:
Typeface plain = Typeface.createFromAsset(assetManager, pathToFont);
Typeface bold = Typeface.create(plain, Typeface.DEFAULT_BOLD)
Paint paint = new Paint();
paint.setTypeface(bold);
canvas.drawText("Sample text in bold",0,0,paint);
Typeface plain = Typeface.createFromAsset(assetManager, pathToFont); Typeface bold = Typeface.create(plain, Typeface.DEFAULT_BOLD)
।
getContext().getAssets()
?
Typeface.DEFAULT_BOLD
मुझे मुद्दों के रूप में अच्छी तरह से दिया, लेकिन Typeface.BOLD
काम करने के लिए बदल रहा है
यदि आप अपने फोंट के लिए एक्सएमएल में एंड्रॉइड के नए फ़ॉन्ट्स का उपयोग कर रहे हैं, तो पेंट के लिए उपयोग किए जाने वाले टाइपफेस को प्राप्त करने के लिए:
val customTypeface = ResourcesCompat.getFont(context, R.font.myfont)
या यदि आपका न्यूनतम Android API> = 26 है
val customTypeface = resources.getFont(R.font.myfont)
फिर इसे अपने पेंट ऑब्जेक्ट पर लागू करने के लिए:
mTextPaint.typeface = customTypeface
अधिक जानकारी के लिए https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml#fonts-in-code देखें
यदि आपके पास पहले से ही उपयोग में एक फ़ॉन्ट है और आप उस के बोल्ड संस्करण का उपयोग करना चाहते हैं तो आप ऐसा कर सकते हैं।
currentPainter = new Paint(Paint.ANTI_ALIAS_FLAG);
currentPainter.setColor(Color.WHITE);
currentPainter.setTextSize(Utils.sp2px(getResources(), 14)); // set font size
Typeface currentTypeFace = currentPainter.getTypeface();
Typeface bold = Typeface.create(currentTypeFace, Typeface.BOLD);
currentPainter.setTypeface(bold);
मैंने ऊपर दिए गए उत्तर का उपयोग किया, लेकिन यह संशोधन मेरे लिए आवश्यक था - इसलिए मैंने सोचा था कि मैं इसका उल्लेख करूंगा
यदि आप संसाधनों से एक फ़ॉन्ट का उपयोग करना चाहते हैं (कोटलिन):
val textPaint = TextPaint()
textPaint.typeface = resources.getFont(R.font.font_name)
यह सवाल से संबंधित नहीं हो सकता है, लेकिन यह वही है जो मैं देख रहा था - शायद किसी को इसकी भी आवश्यकता होगी।
Canvas
?