क्या एंड्रॉइड में स्ट्रिंग संसाधन का रंग सेट करने के लिए वैसे भी है? मेरा मतलब है, मुझे पता है कि मैं स्ट्रिंग शैली (या सबस्ट्रिंग्स) को बदलने के लिए कुछ एचटीएमएल टैग का उपयोग कर सकता हूं लेकिन रंग बदलने के लिए कोई नहीं मिला है। मैंने पाठ को सेट करने से पहले Html.fromHtml (स्ट्रिंग) में स्ट्रिंग को पार करने जैसे स्ट्रैक ओवरफ्लो पर अन्य समाधान देखे हैं लेकिन मैं इसे स्ट्रिंग संसाधन संपादक में करना चाहता हूं। कोई संभावना है?संसाधन स्ट्रिंग में शब्द रंग बदलें
उत्तर
जहाँ तक मुझे पता के रूप में यह संभव नहीं है। मैं रंग बदलने के लिए एक स्पैन करने योग्य स्ट्रिंग का उपयोग करूंगा।
int colorBlue = getResources().getColor(R.color.blue);
String text = getString(R.string.text);
SpannableString spannable = new SpannableString(text);
// here we set the color
spannable.setSpan(new ForegroundColorSpan(colorBlue), 0, text.length(), 0);
स्पैन करने योग्य वास्तव में अच्छा है। आप fontseize और सामान की तरह सोच सेट कर सकते हैं और बस इसे एक टेक्स्ट व्यू में संलग्न कर सकते हैं। लाभ यह है कि आप एक दृश्य में अलग-अलग रंग रख सकते हैं।
संपादित करें: ठीक है, अगर आप केवल रंग सेट करना चाहते हैं तो मेरे ऊपर उल्लिखित समाधान जाने का तरीका है।
स्ट्रिंग्स के पास कोई रंग नहीं है, लेकिन आप पाठ में टेक्स्ट के रंग को बदल सकते हैं। वे textview documentation देखें, लेकिन ऐसा करने के 2 तरीके हैं।
एक्सएमएल
android:textColor
कोड
setTextColor(int)
उत्तर के लिए धन्यवाद। मुझे लगता है कि यह अच्छी तरह से तैयार नहीं किया गया था। मैंने संसाधन स्ट्रिंग में एक सबस्ट्रिंग का रंग बदलने के लिए प्रस्तुत किया। उसके लिए खेद है। – Notbad
ऐसा लगता है कि this विधि काम कर रहा है:
<string name="some_text">this is <font fgcolor="#ffff0000">red</font></string>
यह काम करना बंद कर दिया है 4.3 (संभवतः पहले) - किसी को पता है कि क्या हो रहा है? –
[यह क्यों काम करना बंद कर दिया] [https://code.google.com/p/android/issues/detail?id=58192), [यह कैसे काम करना बंद कर दिया] (https://github.com/android/platform_frameworks_base/commit/a8f6d5f0720f400b6f59b0809aaefea83c5f51d4), [एक अच्छा वैकल्पिक हल/शामिल कोड: (] (http://stackoverflow.com/a/18839246/253468) और एक बदसूरत वैकल्पिक हल: किसी के लिए '7fffffff' से ऊपर का रंग निम्न लागू होता है:' 'कैलकुलेटर में 'ff6890a5' डालें' (opti औपचारिक रूप से पहले दशमलव में कनवर्ट करें) और हस्ताक्षर फ़्लिप करें, फिर (वैकल्पिक रूप से हेक्सा में कनवर्ट करें) अंतिम 8 हेक्साडेसिमल अंक लें और '' का उपयोग करें। – TWiStErRob
ठीक है, अब ** यह ** खूनी शानदार था। यह पूरी तरह से काम किया। बहुत बहुत धन्यवाद और मेरी इच्छा है कि मैं इस बारे में बहुत समय पहले जानूंगा। –
मैं हाल ही में इस समस्या के लिए एक लचीला समाधान कर दिया है। यह मुझे विधि श्रृंखला का उपयोग कर आसानी से एकाधिक शैलियों को जोड़ने के लिए सक्षम बनाता है। यह SpannableString का उपयोग करता है। जब आप एक रंग को एक निश्चित सबस्ट्रिंग देना चाहते हैं, तो आप ForegroundColorSpan का उपयोग कर सकते हैं।
public StyledString putColor(String subString, @ColorRes int colorRes){
if(getStartEnd(subString)){
int color = ColorUtil.getColor(context, colorRes);
ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(color);
fullStringBuilder.setSpan(foregroundColorSpan, startingIndex, endingIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return this;
}
पूर्ण कोड के लिए gist देखते हैं।
में काम करता है, जबकि एक लिंक बहुत अच्छा है, कृपया [अपने लिंक (ओं) के संदर्भ प्रदान करें] (http://meta.stackoverflow.com/a/8259/169503), जैसा कि * उत्तर * वास्तव में होना चाहिए एक जवाब। ध्यान रखें कि * किसी बाहरी साइट के लिंक से शायद ही अधिक * होने का एक संभावित कारण है [क्यों और कैसे कुछ उत्तरों हटा दिए गए हैं?] (Http://stackoverflow.com/help/deleted-answers)। – Jan
- 1. एंड्रॉइड: स्ट्रिंग संसाधन बदलें प्रोग्रामेटिक
- 2. NavigationBar बदलें रंग (पृष्ठभूमि रंग)
- 3. विम वर्तनी में शब्द पहचान कैसे बदलें?
- 4. विम में वाक्यविन्यास रंग बदलें?
- 5. रेगेक्स स्ट्रिंग में शब्द ढूंढें
- 6. एंड्रॉइड पृष्ठभूमि स्ट्रिंग संसाधन
- 7. Emacs में CamelCase शब्दों के लिए आगे-शब्द/पिछड़ा-शब्द/हत्या-शब्द बदलें
- 8. चयन का रंग बदलें
- 9. पृष्ठभूमि रंग बदलें
- 10. uitextview हाइपरलिंक रंग बदलें
- 11. बदलें UIBarbuttonItems रंग
- 12. बदलें नेवबार रंग 2.0.4
- 13. बदलें edittext सीमा रंग
- 14. बदलें मंडराना रंग
- 15. एक्शनबैरशेलॉक पृष्ठभूमि रंग बदलें
- 16. बदलें पृष्ठभूमि रंग WPF
- 17. बदलें टीआर पृष्ठभूमि रंग
- 18. edittext कर्सर रंग बदलें
- 19. हाइलाइट रंग बदलें
- 20. UISearchBar प्लेसहोल्डर रंग बदलें
- 21. नोटपैड ++ टेक्स्ट रंग बदलें?
- 22. प्रगति इंडिकेटर रंग बदलें
- 23. एंड्रॉइड- क्या एक स्ट्रिंग संसाधन
- 24. हार्डकोडेड स्ट्रिंग "पंक्ति में तीन", @string संसाधन
- 25. एंड्रॉइड: पृष्ठभूमि बदलें रंग का रंग
- 26. सूची बदलें कैसे बदलें टेक्स्ट रंग
- 27. सभी गैर-शब्द वर्णों को बदलें? * + #
- 28. शब्द (स्ट्रिंग) को int
- 29. फ़ॉन्ट रंग मध्य-वाक्य कैसे बदलें
- 30. पावरहेल स्क्रिप्ट प्रारूप-तालिका आउटपुट में रंग शब्द
मैं देखता हूं, अगर यह जाने का तरीका है तो मैं अपने स्ट्रिंग संसाधनों को कुछ "कोड" के साथ बना सकता हूं ताकि यह पता चल सके कि मैं जिस पदार्थ को बदलना चाहता हूं वह रंग शुरू होता है और समाप्त होता है और जिस तरह से आप उजागर करते हैं उसे संसाधित करते हैं। धन्यवाद। – Notbad
'int colorBlue = getResources()। Getcolor (R.color.blue); .... spannable.setSpan (नई ForegroundColorSpan (colorBlue), 0, text.length(), 0); 'इस' spannable.setSpan (नई ForegroundColorSpan (R.color.blue की तरह एक ही पंक्ति द्वारा प्रतिस्थापित किया जा सकता है)। .' –
इसके अलावा, मैं व्यक्तिगत रूप से झंडा स्थिरांक spannable वर्ग में घोषित बजाय कॉल के दौरान हार्ड-कोड 0 की। का प्रयोग करेंगे। अधिक पठनीय और maintainable कोड के लिए बनाता है बस कुछ है कि मैं क्या करना होगा .. –