android - कोड में टेक्स्ट व्यू का टेक्स्ट रंग कैसे सेट करें?




colors textview (25)

एक्सएमएल में, हम textColor विशेषता द्वारा टेक्स्ट रंग सेट कर सकते हैं, जैसे android:textColor="#FF0000" । लेकिन मैं कोडिंग करके इसे कैसे बदलूं?

मैंने कुछ ऐसा करने की कोशिश की:

holder.text.setTextColor(R.color.Red);

जहां holder सिर्फ एक वर्ग है और text TextView टाइप है। लाल तारों में सेट एक आरजीबी मूल्य (# एफएफ 0000) है।

लेकिन यह लाल रंग के बजाय एक अलग रंग दिखाता है। SetTextColor () में हम किस प्रकार का पैरामीटर पारित कर सकते हैं? दस्तावेज़ीकरण में, यह int कहता है, लेकिन क्या यह संसाधन संदर्भ मान या कुछ और है?


Answers

आप उपयोग कर सकते हैं

holder.text.setTextColor(Color.rgb(200,0,0));

आप पारदर्शिता के साथ जो रंग चाहते हैं उसे भी निर्दिष्ट कर सकते हैं।

holder.text.setTextColor(Color.argb(0,200,0,0));

अल्फा (पारदर्शी) मान आर-लाल जी-हरा बी-ब्लू के लिए


टेक्स्ट व्यू पर रंग सेट करने के कई अलग-अलग तरीके हैं।

  1. स्टूडियो res-> values-> colors.xml में रंग मान जोड़ें

    <color name="color_purple">#800080</color>
    

    अब रंग को एक्सएमएल या एक्टविटी क्लास में सेट करें

    text.setTextColor(getResources().getColor(R.color.color_purple)
    
  2. यदि आप Color.parseColor कोड के नीचे सीधे रंग कोड देना चाहते हैं

    textView.setTextColor(Color.parseColor("#ffffff"));   
    
  3. आप आरजीबी का भी उपयोग कर सकते हैं

    text.setTextColor(Color.rgb(200,0,0));
    
  4. उपयोग टेक्स्ट व्यू के लिए प्रत्यक्ष हेक्सकोड का भी उपयोग कर सकते हैं। आप सादा हेक्स भी डाल सकते हैं, जैसे:

    text.setTextColor(0xAARRGGBB);
    
  5. आप अल्फा मानों के साथ argb का भी उपयोग कर सकते हैं।

       text.setTextColor(Color.argb(0,200,0,0));
    

    अल्फा (पारदर्शी) वी के लिए एक।

  6. और यदि आप कॉम्पैट लाइब्रेरी का उपयोग कर रहे हैं तो आप ऐसा कुछ कर सकते हैं

       text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
    

TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

उपरोक्त कोड मेरी तरफ काम कर रहा है। यहां text एक text व्यू है जिस पर सेट करने के लिए रंग की आवश्यकता है।


यदि आप setTextAppearance का उपयोग करने की योजना बना रहे हैं तो आपको पता होना चाहिए कि यह थीम रंग से प्राप्त शैली के साथ टेक्स्ट रंग को ओवरराइट करेगा। तो यदि आप दोनों का उपयोग करना चाहते हैं, तो बाद में रंग सेट करें।

यह काम:

textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
textView.setTextColor(Color.RED);

हालांकि यह आपके टेक्स्ट रंग को उदाहरण के लिए सफेद (अंधेरे विषय के लिए) या काला (प्रकाश विषय के लिए) का कारण बन जाएगा:

textView.setTextColor(Color.RED);
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);

एक्सएमएल में इसके विपरीत आदेश मनमाना है।


मैं इसे ReviewerView के लिए व्यूहोल्डर में टेक्स्ट व्यू के लिए कर रहा था। मुझे इतना यकीन नहीं है कि क्यों, लेकिन यह मेरे लिए ViewHolder प्रारंभ में काम नहीं करता था।

public ViewHolder(View itemView) {
    super(itemView);
    textView = (TextView) itemView.findViewById(R.id.text_view);
    textView.setTextColor(context.getResources().getColor(R.color.myColor));
    // Other stuff
}

लेकिन जब मैंने इसे ऑनबिंडहोल्डर पर ले जाया, तो यह ठीक काम किया।

public void onBindViewHolder(ViewHolder holder, int position){
    // Other stuff
    holder.textView.setTextColor(context.getResources().getColor(R.color.myColor));
}

उम्मीद है कि यह किसी की मदद करता है।


textView.setTextColor(ContextCompat.getColor(getApplicationC‌​ontext(),R.color.col‌​orWhite)); 

colors.xml फ़ाइल में, नीचे दिए गए कोड में लिखें:

<color name="colorWhite">#FFFFFF</color>

इसी प्रकार, मैं color.xml का उपयोग कर रहा था:

<color name="white">#ffffff</color>
    <color name="black">#000000</color>   

TextView पृष्ठभूमि को TextView करने के लिए:

textView.setTextColor(R.color.white);

मुझे एक अलग रंग मिल रहा था, लेकिन जब मैंने नीचे दिए गए कोड का उपयोग किया तो मुझे वास्तविक रंग मिला।

textView.setTextColor(Color.parseColor("#ff6363"));

layout.xml में निम्न कोड का प्रयोग करें

<TextView  android:id="@+id/textView1"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content" 
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add"
        android:layout_marginTop="16dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#25383C"
        android:textSize="13sp" />

   textViewStatus.setTextColor(res.getColor(R.color.green));

मैं आमतौर पर किसी भी विचार के लिए ऐसा करता हूं:

myTextView.setTextColor(0xAARRGGBB);

कहा पे

  • एए अल्फा परिभाषित करता है (पारदर्शी के लिए 00, अपारदर्शी के लिए एफएफ)

  • आरआरजीजीबीबी सामान्य एचटीएमएल रंग कोड (लाल के लिए एफएफ 0000 की तरह) को परिभाषित करता है।


उपयोग:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));

एपीआई 23 से आगे, getResources().getColor() को बहिष्कृत किया गया है।

इसके बजाए इसका प्रयोग करें:

textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));

TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);

getcolor () बहिष्कृत है

तो इस तरह से प्रयास करें:

 tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));

holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));

text1.setTextColor (Color.parseColor ( "# 000000"));


मेरा मानना ​​है कि यदि आप एक संसाधन ( XML फ़ाइल में) के रूप में रंग निर्दिष्ट करना चाहते हैं, तो आपको इसके ARGB मूल्य (केवल आरजीबी मूल्य नहीं) प्रदान करना होगा।

अपना रंग मान #FFFF0000 बदलने का प्रयास करें। यह आपको लाल देना चाहिए।


और दूसरा:

TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));

आपको उपयोग करना चाहिए:

holder.text.setTextColor(Color.RED);

एक सैनिटी चेक के लिए, मैंने अभी कोशिश की, क्योंकि मेरे पास एक प्रोजेक्ट खुल गया था, और हाँ, यह अच्छा और लाल है; डी

पाठ्यक्रम के समान प्रभाव प्राप्त करने के लिए आप Color क्लास से विभिन्न कार्यों का उपयोग कर सकते हैं।

  • Color.parseColor (Manual) (जैसे LEX उपयोग करता है)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgb और Color.argb ( मैन्युअल आरजीबी ) ( मैनुअल argb ) (गणपति का उपयोग करता है)

    holder.text.setTextColor(Color.rgb(200,0,0));
    holder.text.setTextColor(Color.argb(0,200,0,0));
    
  • और निश्चित रूप से, यदि आप अपने रंग को किसी XML फ़ाइल में परिभाषित करना चाहते हैं, तो आप यह कर सकते हैं:

    <color name="errorColor">#f00</color>
    

    क्योंकि getColor() फ़ंक्शन को बहिष्कृत किया गया है, आपको इसे इस तरह उपयोग करने की आवश्यकता है:

    ContextCompat.getColor(context, R.color.your_color);
    
  • आप सादा हेक्स भी डाल सकते हैं, जैसे:

    myTextView.setTextColor(0xAARRGGBB);
    

    जहां आपके पास अल्फा-चैनल पहले है, तो रंग मान।

कोर्स का पूरा मैनुअल देखें, पब्लिक क्लास कलर ऑब्जेक्ट बढ़ाता है

1 यह कोड यहां भी प्रयोग किया जाता था:

textView.setTextColor(getResources().getColor(R.color.errorColor));

इस विधि को अब एंड्रॉइड एम में बहिष्कृत किया गया है। हालांकि आप इसे समर्थन लाइब्रेरी में संदर्भ कॉम्पैक्ट से उपयोग कर सकते हैं, उदाहरण के रूप में अब दिखाता है।


यदि आप अभी भी अपने एक्सएमएल फ़ाइल में अपने रंग निर्दिष्ट करना चाहते हैं:

<color name="errorColor">#f00</color>

फिर इन कोडों में से एक के साथ अपने कोड में इसका संदर्भ लें:

textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme()));    

या

textView.setTextColor(getResources().getColor(R.color.errorColor, null));

यदि आप एंड्रॉइड एम के खिलाफ संकलन कर रहे हैं तो पहला संभवतः बेहतर है, हालांकि आपके द्वारा पास की जाने वाली थीम शून्य हो सकती है, तो हो सकता है कि यह आपके लिए आसान हो?

और यदि आप कॉम्पैट लाइब्रेरी का उपयोग कर रहे हैं तो आप ऐसा कुछ कर सकते हैं

textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));

मैंने इस तरह से किया: एक XML फ़ाइल बनाएं, जिसे रंग / मान फ़ोल्डर में रंग कहा जाता है।

मेरा रंग। Xml:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="vermelho_debito">#cc0000</color>
    <color name="azul_credito">#4c4cff</color>
    <color name="preto_bloqueado">#000000</color>
    <color name="verde_claro_fundo_lista">#CFDBC5</color>
    <color name="branco">#ffffff</color>
    <color name="amarelo_corrige">#cccc00</color>
    <color name="verde_confirma">#66b266</color>
</resources>

इस रंग को xml फ़ाइल से प्राप्त करने के लिए, मैंने इस कोड का उपयोग किया है: valor यह एक टेक्स्ट व्यू है, और ctx यह एक संदर्भ वस्तु है। मैं इसे किसी गतिविधि से उपयोग नहीं कर रहा हूं, लेकिन एक बेसवॉप्टर को ListView में उपयोग नहीं कर रहा हूं। यही कारण है कि मैंने इस संदर्भ वस्तु का उपयोग किया है।

valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));

आशा करता हूँ की ये काम करेगा।


आप इसे केवल एक एक्सएमएल फाइल से भी कर सकते हैं।

मूल्य फ़ोल्डर में color.xml फ़ाइल बनाएं:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textbody">#ffcc33</color>

</resources>

फिर किसी भी एक्सएमएल फ़ाइल में, आप पाठ के लिए रंग सेट कर सकते हैं,

android:textColor="@color/textbody"

या आप जावा रंग में इस रंग का उपयोग कर सकते हैं:

final TextView tvchange12 = (TextView) findViewById(R.id.textView2);
//Set color for textbody from color.xml file
tvchange1.setTextColor(getResources().getColor(R.color.textbody));

एडाप्टर में आप इस कोड का उपयोग करके टेक्स्ट रंग सेट कर सकते हैं:

holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));

आप Color क्लास के इन-निर्मित रंगों का उपयोग करने के लिए textView.setTextColor(Color.BLACK) का उपयोग कर सकते हैं।

आप कस्टम रंगों को परिभाषित करने के लिए textView.setTextColor(Color.parseColor(hexRGBvalue)) का भी उपयोग कर सकते हैं।


मुझे सबसे अच्छा तरीका मिला:

इन अतिरिक्त विशेषताओं के साथ टेक्स्ट व्यू को एडिटटेक्स्ट के साथ बदलें:

android:background="@null"
android:editable="false"
android:cursorVisible="false"

ScrollView में लपेटने की कोई आवश्यकता नहीं है।







android colors textview