टेक्स्टव्यू में टेक्स्ट के लिए डिफ़ॉल्ट रंग क्या है?


90

मैंने रंग को लाल करने के लिए सेट किया है, और उसके बाद मैं रंग को फिर से डिफ़ॉल्ट पर सेट करना चाहता हूं, लेकिन मुझे नहीं पता कि डिफ़ॉल्ट रंग क्या है, क्या कोई जानता है?

जवाबों:


89

आप पुराने रंग को बचा सकते हैं और फिर मूल मूल्य को पुनर्स्थापित करने के लिए इसका उपयोग कर सकते हैं। यहाँ एक उदाहरण है:

ColorStateList oldColors =  textView.getTextColors(); //save original colors
textView.setTextColor(Color.RED);
....
textView.setTextColor(oldColors);//restore original colors

लेकिन सामान्य रूप से डिफ़ॉल्ट TextViewपाठ रंग आपके द्वारा लागू वर्तमान थीम से निर्धारित होता है Activity


सबसे सही समाधान। संरक्षित पाठ रंग राज्यों (अक्षम, आदि)
dasar

मेरे अवलोकन से, थीम द्वारा परिभाषित टेक्स्ट कलर को कोड से डायनेमिक रूप से जोड़े गए टेक्स्ट व्यू द्वारा विरासत में नहीं मिला है। यह हमेशा अंधेरे / प्रकाश विषय की परवाह किए बिना सफेद रंग में दिखाई देता है।
शिउमिंग

2
@ शशि के उपयोग के संदर्भ। प्रत्येक कंस्ट्रक्टर एक संदर्भ का उपयोग करता है, और उस संदर्भ में, एक थीम सेट होता है (आमतौर पर डिफ़ॉल्ट)। यदि आवश्यक हो, का उपयोग TextView (संदर्भ संदर्भ, AttributeSet attrs, पूर्णांक defStyleAttr, पूर्णांक defStyleRes)
Bonatti

110

वास्तव में रंग TextView है:

android:textColor="@android:color/tab_indicator_text"

या

#808080

4
यह डिफ़ॉल्ट टैब इंडिकेटर टेक्स्ट कलर है। कई मामलों में यह डिफ़ॉल्ट टेक्स्ट रंग के समान हो सकता है, लेकिन मैं इस पर भरोसा नहीं करूंगा।
k2col

6
बहुत करीब है, लेकिन यह रंग समान नहीं है।
लुकासटार्ज़ास्का

2
@LukTar सही है, मैंने फ़ोटोशॉप का उपयोग किया और रंग की जाँच की ... # 737373 एक बिंदु पिक्सेल नमूने से टेक्स्टव्यू टेक्स्ट का रंग है (एक पिक्सेल का नमूना क्षेत्र आकार) जो कि एंड्रॉइड स्टूडियो में 1000% तक ज़ूम किया गया है ... मुझे लगता है आप किसी भी
कण

41

इसमें कुछ डिफ़ॉल्ट रंग परिभाषित किए गए हैं android.R.color

int c = getResources().getColor(android.R.color.primary_text_dark);

4
इसके int c = ...बजाय होना चाहिएColor c = ...
केविन क्रूज़सेन

7
एपीआई स्तर 23 के अनुसार, getResources().getColor(int id)अब अपग्रेड किया गया है ( लिंक देखें )। आप या तो उपयोग कर सकते हैं getResources().getColor (int id, Resources.Theme theme)याContextCompat.getColor(contex, android.R.color.primary_text_dark)
InfectedPacket

प्राथमिक_टेक्स्ट_डार्क अब पदावनत हो गया है लेकिन पता नहीं क्यों :(
आवेग फॉक्स

15

इन मूल्यों को विशेषताओं से प्राप्त करें:

int[] attrs = new int[] { android.R.attr.textColorSecondary };
TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, attrs);
DEFAULT_TEXT_COLOR = a.getColor(0, Color.RED);
a.recycle();

ऐसा लगता है कि यह थीम के आधार पर रंग का ठीक से चयन करेगा, और उदाहरण के लिए अपडेट करेगा, यदि ऐप रात मोड में है।
ब्रिल पप्पिन

करंट थीम के लिए टाइप किए गए एरे को पाने के लिए इसे थीम आर्ग के बिना कॉल करें: टाइप किए गए एरे = a गेटटीम ()। GetStyledAttributes (attrs);
पेट्र्सिन

यह केवल एक उपयुक्त रंग प्राप्त करेगा यदि विषय वास्तव में textColorSecondary का उपयोग कर रहा है। चूंकि विषय या शैली में इसे ओवरराइड करना संभव है, यह निर्धारित करने का एक बहुत सटीक तरीका नहीं है कि किसी विशेष दृश्य के लिए डिफ़ॉल्ट पाठ रंग वास्तव में क्या होगा। यह भी ध्यान दें कि अब व्यक्तिगत विचार थीम पर आधारित हो सकते हैं, इसलिए दृश्य के संदर्भ से जुड़े विषय का उपयोग किया जाना चाहिए बजाय इसके कि सभी के विचारों के लिए गतिविधि का विषय प्रभावी हो।
लोर्ने लालिबेटे

6

यदि आप किसी पाठ रंग को निर्दिष्ट नहीं करते हैं, तो एंड्रॉइड का उपयोग करने वाले विषय में चूक हैं। यह विभिन्न एंड्रॉइड यूआई (जैसे एचटीसी सेंस, सैमसंग टचविज़, आदि) में अलग-अलग रंग हो सकते हैं। एंड्रॉइड की एक थीम _darkऔर _lightथीम है, इसलिए इन के लिए डिफॉल्ट अलग हैं (लेकिन वेनिला एंड्रॉइड में दोनों में लगभग काले)। हालाँकि, संपूर्ण प्राथमिक रंग को परिभाषित करने के लिए यह अच्छा है कि उपकरणों में एक सुसंगत शैली प्रदान की जाए।

कोड में:

getResources().getColor(android.R.color.primary_text_dark);
getResources().getColor(android.R.color.primary_text_light);

Xml में:

android:color="@android:color/primary_text_dark"
android:color="@android:color/primary_text_light"

वेनिला एंड्रॉइड के संदर्भ में डार्क थीम टेक्स्ट का रंग है #060001और #060003एपीआई v1 के बाद से प्रकाश विषय में है । यहाँ Android शैली वर्ग देखें


आपके अंतिम लिंक में संदर्भित रंग वास्तव में बिल्कुल भी रंग नहीं हैं, वे सिर्फ android.R मान हैं जो रंग देखने के लिए उपयोग किए जाते हैं। आप इस निर्देशिका में रंग ढूंढ कर डिफ़ॉल्ट रंग देख सकते हैं और इस .xml फ़ाइल में आधार रंग संदर्भ देख सकते हैं ।
एलेक्स गिट्टिएर

5

मुझे पता है कि यह पुराना है, लेकिन डिफ़ॉल्ट लाइट थीम, डिफ़ॉल्ट के साथ अपने स्वयं के थीम संपादक के अनुसार

textPrimaryColor = #000000

तथा

textColorPrimaryDark = #757575

2

मैंने टेक्स्टव्यू पर एक कलर पिकर का इस्तेमाल किया और इसे # 757575 मिला


2

यह सभी स्थितियों में संभव नहीं हो सकता है, लेकिन एक ही गतिविधि में मौजूद एक अलग यादृच्छिक TextView के मूल्य का उपयोग क्यों नहीं किया जाता है और यह उस रंग को वहन करता है जिसे आप खोज रहे हैं?

txtOk.setTextColor(txtSomeOtherText.getCurrentTextColor());

0

कोई डिफ़ॉल्ट रंग नहीं है। इसका मतलब है कि हर डिवाइस का अपना हो सकता है।


7
कोई डिफ़ॉल्ट रंग नहीं हैं, बस हर Android वितरण उन्हें अधिलेखित कर सकता है
पैट्रिक फेवर

@ for3st क्या आप उन मामलों के बारे में जानते हैं जो वे इसे बदलते हैं?
एंड्रॉइड डेवलपर

0

मेरा मानना ​​है कि डिफ़ॉल्ट रंग पूर्णांक मान 16711935 (0x00FF00FF) है।


12
वाह हार्डकोड सामान, आप जानते हैं। यह सभी उपकरणों पर और सभी चयन योग्य विषयों के साथ सभी Android संस्करणों के लिए मूल्य था ?! मज़ाक करना, आप जानते हैं ... :)
14

1
तो एंड्रॉइड में डिफ़ॉल्ट टेक्स्ट का रंग गुलाबी है? मुझे लगता है कि यह # 060001 developer.android.com/reference/android/… के
पैट्रिक फेवर


0

मैंने पाया कि android:textColor="@android:color/secondary_text_dark"डिफ़ॉल्ट TextView रंग की तुलना में करीब परिणाम प्रदान करता है android:textColor="@android:color/tab_indicator_text"। मुझे लगता है कि आपके द्वारा उपयोग किए जा रहे थीम के आधार पर आपको secondary_text_dark / light के बीच स्विच करना होगा


0

आप बदलाव करने से पहले मूल रंग को संग्रहीत करने के लिए TextView.setTag / getTag का उपयोग कर सकते हैं। मैं सुझाव दूंगा कि अगर आपके पास अन्य टैग्स को अलग करने के लिए ids.xml में एक अद्वितीय आईडी संसाधन है।

अन्य रंगों को सेट करने से पहले:

if (textView.getTag(R.id.txt_default_color) == null) {
    textView.setTag(R.id.txt_default_color, textView.currentTextColor)
}

वापस बदलना:

textView.getTag(R.id.txt_default_color) as? Int then {
    textView.setTextColor(this)
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.