मैंने रंग को लाल करने के लिए सेट किया है, और उसके बाद मैं रंग को फिर से डिफ़ॉल्ट पर सेट करना चाहता हूं, लेकिन मुझे नहीं पता कि डिफ़ॉल्ट रंग क्या है, क्या कोई जानता है?
जवाबों:
आप पुराने रंग को बचा सकते हैं और फिर मूल मूल्य को पुनर्स्थापित करने के लिए इसका उपयोग कर सकते हैं। यहाँ एक उदाहरण है:
ColorStateList oldColors = textView.getTextColors(); //save original colors
textView.setTextColor(Color.RED);
....
textView.setTextColor(oldColors);//restore original colors
लेकिन सामान्य रूप से डिफ़ॉल्ट TextView
पाठ रंग आपके द्वारा लागू वर्तमान थीम से निर्धारित होता है Activity
।
वास्तव में रंग TextView है:
android:textColor="@android:color/tab_indicator_text"
या
#808080
इसमें कुछ डिफ़ॉल्ट रंग परिभाषित किए गए हैं android.R.color
int c = getResources().getColor(android.R.color.primary_text_dark);
int c = ...
बजाय होना चाहिएColor c = ...
getResources().getColor(int id)
अब अपग्रेड किया गया है ( लिंक देखें )। आप या तो उपयोग कर सकते हैं getResources().getColor (int id, Resources.Theme theme)
याContextCompat.getColor(contex, android.R.color.primary_text_dark)
इन मूल्यों को विशेषताओं से प्राप्त करें:
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();
यदि आप किसी पाठ रंग को निर्दिष्ट नहीं करते हैं, तो एंड्रॉइड का उपयोग करने वाले विषय में चूक हैं। यह विभिन्न एंड्रॉइड यूआई (जैसे एचटीसी सेंस, सैमसंग टचविज़, आदि) में अलग-अलग रंग हो सकते हैं। एंड्रॉइड की एक थीम _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 शैली वर्ग देखें
मुझे पता है कि यह पुराना है, लेकिन डिफ़ॉल्ट लाइट थीम, डिफ़ॉल्ट के साथ अपने स्वयं के थीम संपादक के अनुसार
textPrimaryColor = #000000
तथा
textColorPrimaryDark = #757575
मैंने टेक्स्टव्यू पर एक कलर पिकर का इस्तेमाल किया और इसे # 757575 मिला
कोई डिफ़ॉल्ट रंग नहीं है। इसका मतलब है कि हर डिवाइस का अपना हो सकता है।
मेरा मानना है कि डिफ़ॉल्ट रंग पूर्णांक मान 16711935 (0x00FF00FF) है।
हे आप इस कोशिश कर सकते हैं
ColorStateList colorStateList = textView.getTextColors();
String hexColor = String.format("#%06X", (0xFFFFFF & colorStateList.getDefaultColor()));
मैंने पाया कि android:textColor="@android:color/secondary_text_dark"
डिफ़ॉल्ट TextView रंग की तुलना में करीब परिणाम प्रदान करता है android:textColor="@android:color/tab_indicator_text"
। मुझे लगता है कि आपके द्वारा उपयोग किए जा रहे थीम के आधार पर आपको secondary_text_dark / light के बीच स्विच करना होगा
आप बदलाव करने से पहले मूल रंग को संग्रहीत करने के लिए 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)
}