ActionBar टेक्स्ट का रंग


288

मैं ActionBar का टेक्स्ट रंग कैसे बदल सकता हूं? मुझे होलो लाइट थीम विरासत में मिली है, मैं एक्शनबार की पृष्ठभूमि को बदलने में सक्षम हूं लेकिन मुझे पता नहीं है कि टेक्स्ट कलर को बदलने के लिए ट्वीक करने की क्या विशेषता है।


ठीक है, मैं विशेषता एंड्रॉइड के साथ टेक्स्ट का रंग बदलने में सक्षम हूं: textColorPrimary लेकिन यह एक्शनबॉलर बटन पर एक अतिप्रवाह होने पर प्रदर्शित ड्रॉपडाउन मेनू के टेक्स्ट रंग को भी बदलता है। किसी भी विचार कैसे उन लटकती मेनू / सूची का रंग बदलने के लिए?


बस एक समाधान पोस्ट किया है जो मेरे लिए काम करता है। यहां देखें stackoverflow.com/a/16175220/627827
spaceMonkey

जवाबों:


447

ठीक है, मैंने एक बेहतर तरीका पाया है। मैं अब केवल शीर्षक का रंग बदलने में सक्षम हूं। आप उपशीर्षक को भी घुमा सकते हैं।

यहाँ मेरी शैलियों है। xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
  </style>

  <style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
  </style>

  <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/red</item>
  </style>
</resources>

32
यह सही तरीका है। हालांकि, स्थिरता के लिए, आप इनहेरीट से किया जाना चाहिए Widget.Holo.Light.ActionBarके लिए MyTheme.ActionBarStyle
जेक व्हार्टन

7
निर्माण नहीं होगा - ADT की शिकायत है कि इसके लिए v13 या इसके बाद के संस्करण की आवश्यकता है (इसलिए ... अधिकांश Android हैंडसेट पर काम नहीं करेगा :()
एडम

8
@ अदम मुझे एक ही समस्या थी, लेकिन अगला जवाब मेरे लिए काम करता है - माता-पिता के बजाय = "@ android: style / textAppearance.Holo.Widget.ActionBar.Title" माता-पिता का उपयोग करें = "@ android: style / TextAppearance
bkurzius

8
यदि आप Appcompat लाइब्रेरी का उपयोग कर रहे हैं, तो Holo को AppCompat से बदलें। यह काम करता है
शा

3
@LOG_TAG विजेट का उपयोग करें ।AppCompat.Light.ActionBar
sha

97

मुझे एक ऐसा तरीका मिला जो ActionBar( शर्लक , कम्पेटिबल और नेटिव ) के किसी भी स्वाद के साथ अच्छा काम करता है :

शीर्षक सेट करने के लिए HTML का उपयोग करें , और टेक्स्ट का रंग निर्दिष्ट करें। उदाहरण के लिए, ActionBar टेक्स्ट का रंग लाल करने के लिए, बस यह करें:

getActionBar()/* or getSupportActionBar() */.setTitle(Html.fromHtml("<font color=\"red\">" + getString(R.string.app_name) + "</font>"));

आप #FF0000शब्द के बजाय लाल हेक्स कोड का उपयोग कर सकते हैं red। यदि आप इससे परेशान हैं, तो देखें कि Android Html.fromHtml (स्ट्रिंग) <font color = '#'> पाठ </ font> के लिए काम नहीं करता है


इसके अतिरिक्त, यदि आप एक रंग संसाधन का उपयोग करना चाहते हैं, तो इस कोड का उपयोग सही HEX स्ट्रिंग प्राप्त करने के लिए किया जा सकता है, और यदि आवश्यक हो तो अल्फा को हटा दिया जा सकता है ( फ़ॉन्ट टैग अल्फा का समर्थन नहीं करता है):

int orange = getResources().getColor(R.color.orange);
String htmlColor = String.format(Locale.US, "#%06X", (0xFFFFFF & Color.argb(0, Color.red(orange), Color.green(orange), Color.blue(orange))));

यह एक त्रुटि देता है क्योंकि आपको Html.fromHtml () विधि में एक स्ट्रिंग डालनी है, और आप विधि में कई पैरामीटर रख रहे हैं। जब "," द्वारा "+" की जगह यह पूरी तरह से काम करता है :-)।
pinyin_samu

3
दशकों की खोज के बाद, यह सबसे आसान उपाय है! अच्छा काम!
bmkay

2
@MSI, आप हेक्स मूल्यों का भी उपयोग कर सकते हैं, बस के redसाथ बदलें " + color + "
फिल

1
@MSI, क्या आप यह कोशिश कर सकते हैं कि यह पोस्ट क्या बताती है (मेरे सवाल का अपडेट भी)? बस के #FF0000साथ बदलें "+color+"
फिल

1
धन्यवाद फिल यह सही काम कर रहा है! मैंने इस तरह से कोशिश की: getSupportActionBar ()। SetTitle (Html.fromHtml ("<font color = '" + color + ">>" + "Home" + "</ font>)); बस 'के स्थान पर' का उपयोग करना होगा।
MSIslam

93

मुझे आपके समान ही समस्या हो रही थी, यह एक Holo.Light विषय है, लेकिन मैं ActionBar रंग को स्टाइल करना चाहता था, इसलिए मुझे टेक्स्ट रंग के साथ-साथ शीर्षक और मेनू दोनों को भी बदलने की आवश्यकता थी। इसलिए अंत में मैं हब हब पर गया और स्रोत कोड को देखा जब तक कि मुझे लानत सही शैली नहीं मिली:

<?xml version="1.0" encoding="utf-8"?>
<!-- For honeycomb and up -->
<resources>

    <style name="myTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/myTheme.ActionBar</item>
        <item name="android:actionMenuTextColor">@color/actionBarText</item>
    </style>

    <style name="myTheme.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@drawable/actionbarbground</item>
        <item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
    </style>

    <style name="myTheme.ActionBar.Text" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/actionBarText</item>
    </style>

</resources>

तो अब आपको बस इतना करना है कि आप जो चाहें सेट करें @color/actionBarTextऔर करें @drawable/actionbarbground!


मुझे इस xml का उपयोग कहाँ करना है? मान या मान- v11 या मान v-14 ??
DroidLearner

उत्तर feb / 2012 से है, उस समय V14 नहीं था। तो सुनिश्चित करने के लिए V11।
ब्यूडियस

3.0 से नीचे सिस्टम में एक्शनबार नहीं है।
बडियस

मैं एक्शन बार शर्लक का उपयोग कर रहा हूं और मुझे इसका हल मिल गया है। धन्यवाद :)
DroidLearner

3
एक्शनबार शेरलॉक के लिए आपको एक्शनबार के विशिष्ट नामों का उपयोग करना होगा और आप इस जनरेटर का उपयोग कर सकते हैं: jgilfelt.github.com/android-actionbarstylegenerator हम हमेशा इसका उपयोग करते हैं जहां मैं काम करता हूं। यह बहुत अच्छा है
बुडियस

67

ActionBar ID सीधे उपलब्ध नहीं है, इसलिए आपको यहां थोड़ी हैकिंग करनी होगी।

int actionBarTitleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if (actionBarTitleId > 0) {
    TextView title = (TextView) findViewById(actionBarTitleId);
    if (title != null) {
        title.setTextColor(Color.RED);
    }
}

1
NullPointerExceptionइस पंक्ति परactionBarTextView.setTextColor(Color.RED);
DroidLearner

3
यदि आप API स्तर <11, ActionBarSherlock चला रहे हैं और आप अपने आप को एक महंगी कॉल सहेजना चाहते हैं getIndentifier(), तो आप (TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);पहले देख सकते हैं (यदि यह शून्य नहीं है तो जांचना सुनिश्चित करें)।
आंद्रे

"ActionBar ID सीधे उपलब्ध नहीं है" वास्तव में मेरे मामले में टूलबार आसानी से सुलभ है जैसे Toolbar toolbar = findViewById(R.id.toolbar);कि xml लेआउट फ़ाइल में यह com.google.android.material.appbar.AppBarLayoutतत्व से घिरा हुआ है , फिरtoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
YoussefDir

32

यह एक पुराना विषय है लेकिन भविष्य के पाठकों के लिए, टूलबार का उपयोग करने से सब कुछ बहुत आसान हो जाता है:

Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
toolbar.setTitle(R.string.app_name);
toolbar.setTitleTextColor(getResources().getColor(R.color.someColor));
setSupportActionBar(toolbar);

28

मैं सरल एक लाइन कोड के साथ किया है

actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBartitle </font>"));

क्या यह अनिवार्य रूप से ऊपर दिए गए उत्तर की डुप्लिकेट नहीं है: stackoverflow.com/a/19592911/1992342
mike47

एक पैच की तरह दिखता है।
बर्ट्राम गिलफॉयल

28

इसे एक्शन बार की जड़ में जोड़ें। मुझे यह समस्या थी।

<style name="ActionBar" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="actionMenuTextColor">@color/stdDarkBlueText</item>
</style>

<style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="titleTextStyle">@style/ActionBarTitleText</item>
    <item name="subtitleTextStyle">@style/ActionBarSubTitleText</item>
</style>

<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/stdDarkBlueText</item>
    <item name="android:textSize">12sp</item>
</style>

<style name="ActionBarSubTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
    <item name="android:textColor">@color/stdDarkBlueText</item>
    <item name="android:textSize">12sp</item>
</style>

ActionMenuTextColor - एक्शन बार टेक्स्ट के लिए टेक्स्ट का रंग बदलता है, यह कभी काम नहीं करता था जब यह इसका हिस्सा था Widget.Styled.ActionBar, इसलिए मुझे इसे रूट में जोड़ना पड़ा। अन्य 2 विशेषताएँ एक्शन बार के शीर्षक और उपशीर्षक को बदल देती हैं।


"ActionMenuTextColor" के बजाय "android: ActionMenuTextColor" का उपयोग करें। :)
AnkitRox

20

एसडीके v21 + में सामग्री विषय पर कार्य पट्टी पर HTML स्ट्रिंग सेट करने से काम नहीं चलता

यदि आप इसे बदलना चाहते हैं तो आपको अपनी शैली में प्राथमिक पाठ रंग सेट करना चाहिए। xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Material.Light">
        <!-- Customize your theme here. -->
        <item name="android:textColorPrimary">@color/actionbar-text-color</item>
    </style>
</resources>    

1
यह आवेदन में हर जगह प्राथमिक पाठ रंग बदलता है!
मोहम्मद

16

सबसे सीधा तरीका यह है कि इसे स्टाइल में करें। xml

Google की टेम्पलेट शैलियाँ। Xml वर्तमान में निम्न उत्पन्न करती हैं:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

यदि आप समापन टैग से पहले एक और पंक्ति जोड़ते हैं, जैसा कि दिखाया गया है, जो कि टेक्स्ट के रंग को एक डार्क एक्शनबी के साथ बदल देगा:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

यदि आप रंग को किसी और चीज़ में अनुकूलित करना चाहते हैं, तो आप या तो अपने स्वयं के रंग को color.xml में निर्दिष्ट कर सकते हैं या यहां तक ​​कि Android के उपयोग से Android से निर्मित रंग का उपयोग कर सकते हैं: textColorPrimary विशेषता:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="actionBarTheme">@style/AppTheme.AppBarOverlay</item>
</style>


<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@android:color/darker_gray</item>
</style>

नोट: यह शीर्षक का रंग बदलता है और एक्शनबार में प्रदर्शित किसी भी MenuItems के शीर्षक भी।


12

यदि आप भी उपशीर्षक को स्टाइल करना चाहते हैं तो बस इसे अपने कस्टम स्टाइल में जोड़ें।

<item name="android:subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>

जो लोग AppCompatपुस्तकालय के लिए एक ही परिणाम प्राप्त करना चाहते हैं तो यह वही है जो मैंने उपयोग किया है:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomActivityTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>
        <!-- other activity and action bar styles here -->
    </style>

    <!-- style for the action bar backgrounds -->
    <style name="MyActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:background">@drawable/actionbar_background</item>
        <item name="background">@drawable/actionbar_background</item>
        <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="android:subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
        <item name="subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
     </style>
    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/color_title</item>
      </style>
</resources>

मैं एक लाइट थीम, डार्क एक्शन बार और व्हाइट टेक्स्ट के लिए कोशिश कर रहा हूं। आपका कोड केवल एक चीज है जो मैंने अब तक पाया है जिसका कोई भी प्रभाव नहीं है, लेकिन यह पूरे एक्शन बार को सफेद कर देता है। किसी भी विचार क्या हो सकता है? हां मुझे पता है कि यह डेढ़ साल पुराना है। :-)
nasch

इससे मुझे अपनी समस्या हल करने में मदद मिली। मुझे बस दोनों को जोड़ने की आवश्यकता थी <item name="android:titleTextStyle"> और <item name="titleTextStyle"> क्योंकि मैं ऐप्पोमैट सपोर्ट लाइब्रेरी का उपयोग कर रहा था।
रॉक ली

शीर्षक गायब
jairhumberto

8

एपीआई> = 21 पर अपना लेआउट बनाए बिना इसे अच्छी तरह से करने का तरीका मिला।

यह केवल एक्शन बार के अंदर टेक्सट और कंट्रोल ड्रॉबल्स को कलर करेगा।

आशा है कि यह किसी के लिए उपयोगी होगा।

<!--Material design primary colors-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:navigationBarColor">@color/primary_dark</item>
    <item name="actionBarTheme">@style/AppBaseTheme.Toolbar</item>
</style>

<!--Action bar-->
<style name="AppBaseTheme.Toolbar" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="android:textColorPrimary">@color/action_bar_text</item>
    <item name="colorControlNormal">@color/action_bar_text</item>
</style>

7

बहुत सारे उत्तर हटाए गए हैं इसलिए मैं थ्रेड को अपडेट करूँगा और दिखाऊंगा कि कैसे एक्शनबार (टूलबार) पर टेक्स्ट कलर और बैकग्राउंडर को बदला जाए और एक्शनबार मेनू में पॉप अप किया जाए।

ऐक्शन बार (टूलबार) के साथ काम करने के लिए एंड्रॉइड (मई 2018 के अनुसार) में नवीनतम दृष्टिकोण थीम नोएशनबार के साथ उपयोग करना और इसके बजाय टूलबार का उपयोग करना है।

तो यहाँ वह है जो आपको चाहिए:

  1. गतिविधि में (जो AppCompatActivity का विस्तार करता है) टूलबार घोषित करें:

    Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(myToolbar);
  2. गतिविधि के लेआउट xml में टूलबार जोड़ें। यहां हम अपने कस्टम (ओवरराइट किए गए थीम) सेट करेंगे, ध्यान दें android:theme="@style/ThemeOverlay.AppTheme.ActionBar"और app:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu", वे ट्रिक करेंगे।

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
    app:layout_constraintTop_toTopOf="parent" />
  3. अपनी शैलियों में। Xml आपको कस्टम रंग सेट करने के लिए उन दो शैलियों को अधिलेखित करना होगा:

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="actionBarTheme">@style/ThemeOverlay.AppTheme.ActionBar</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppTheme.PopupMenu</item>
    </style>
    
    <style name="ThemeOverlay.AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@color/action_bar_text_color</item>
    <item name="android:background">@color/action_bar_bg_color</item>
    </style>
    
    <style name="ThemeOverlay.AppTheme.PopupMenu" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:background">@color/popup_bg_color</item>
    <item name="android:textColorPrimary">@color/popup_text_color</item>
    </style>

यही लोग हैं

ps यदि आप मुझसे पूछें तो मैं कहूंगा: हाँ, यह पूरी थीम चीज़ गड़बड़ है।


5

यह वह समाधान है जिसका उपयोग मैंने सभी उत्तरों की जाँच के बाद किया था

<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorAccent">@color/Button_color</item>
    <item name="android:editTextStyle">@style/EditTextStyle</item>
    <item name="android:typeface">monospace</item>
    <item name="android:windowActionBar">true</item>
    <item name="colorPrimary">@color/Title_Bar_Color</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>

</style>

<style name="EditTextStyle" parent="Widget.AppCompat.EditText"/>

<style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="titleTextStyle">@style/ActionBarTitleText</item>
    <item name="android:background">@color/Title_Bar_Color</item>
    <item name="background">@color/Title_Bar_Color</item>
    <item name="subtitleTextStyle">@style/ActionBarSubTitleText</item>
</style>

<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/solid_white</item>
    <item name="android:textSize">12sp</item>
</style>

<style name="ActionBarSubTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
    <item name="android:textColor">@color/solid_white</item>
    <item name="android:textSize">12sp</item>
</style>

आवश्यक रंगों को बदलें यह काम करेगा


4

यह फ़ंक्शन अच्छी तरह से काम करता है

private void setActionbarTextColor(ActionBar actBar, int color) {

    String title = actBar.getTitle().toString();
    Spannable spannablerTitle = new SpannableString(title);
    spannablerTitle.setSpan(new ForegroundColorSpan(color), 0, spannablerTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    actBar.setTitle(spannablerTitle);

}

फिर इसका उपयोग करने के लिए इसे अपने एक्शन बार और नए रंग को फीड करें

ActionBar actionBar = getActionBar();    // Or getSupportActionBar() if using appCompat
int red = Color.RED
setActionbarTextColor(actionBar, red);

4

इसे अपनी गतिविधि के ऑनक्रिट में जोड़ने का प्रयास करें। लगभग हर Android संस्करण पर काम करता है।

 actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));  

या

getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));

आपको इस तरह से एक स्ट्रिंग डालनी चाहिए: स्ट्रिंग कलर्ड टाइटल = "<font color = '# FFFFFF'>" + Your_Title + "</ font>"; Html.fromHtml (coloredTitle);
टिनचो .२५

2

एपीआई के कम संस्करण में, कई तरीकों की कोशिश करो, एक व्यवहार्य विधि है <item name="actionMenuTextColor">@color/your_color</item>और Android नामस्थान का उपयोग न करें, आशा है कि आप मदद कर सकते हैं

पुनश्च:

  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="actionMenuTextColor">@color/actionMenuTextColor</item>
</style>

1

बस इसे अपनी लाजवाब शैली में रखें।

<item name="android:textColorPrimary">@color/yourcolor</item>


0

एक अच्छा समाधान उपयोगकर्ता के लिए एक SpannableStringBuilder है और इस तरह रंग निर्धारित किया है। तुम भी स्ट्रिंग के विभिन्न भागों पर विभिन्न रंगों का उपयोग कर सकते हैं, चित्र आदि जोड़ें

नए समर्थन पुस्तकालय के साथ परीक्षण किया गया।

Android देखें : TextView.setText () का उपयोग करके स्ट्रिंग का रंग भाग?


0

यह अनुशंसित समाधान नहीं है जैसा कि मैं यहां एंड्रॉइड एपिस में जा रहा हूं, लेकिन जैसा कि मेरे एप्लिकेशन को विषय को शर्तों पर बदलने की आवश्यकता है xml यहाँ संभव नहीं है, इसलिए मुझे ऐसा करने की आवश्यकता है। लेकिन यह समाधान बहुत अच्छा काम कर रहा है।

उपाय:--

 /**
 * 
 * @author Kailash Dabhi
 * @email kailash09dabhi@gmail.com
 *
 */ 
 public static void setActionbarTextColor(Activity activity, int color) {
    Field mActionViewField;
    try {
        mActionViewField = activity.getActionBar().getClass()
                .getDeclaredField("mActionView");
        mActionViewField.setAccessible(true);
        Object mActionViewObj = mActionViewField.get(activity
                .getActionBar());

        Field mTitleViewField = mActionViewObj.getClass().getDeclaredField(
                "mTitleView");
        mTitleViewField.setAccessible(true);
        Object mTitleViewObj = mTitleViewField.get(mActionViewObj);

        TextView mActionBarTitle = (TextView) mTitleViewObj;
        mActionBarTitle.setTextColor(color);
        // Log.i("field", mActionViewObj.getClass().getName());
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    }

}

0

एंड्रॉइड 5 (लॉलीपॉप) के लिए आपको एंड्रॉइड का उपयोग करना होगा : एवरबॉप मेनू के लिए textColor सेट करने के लिए ActionBarPopupTheme


0

सबसे सरल तरीका है:
इन दो पंक्तियों को अपनी शैलियों में जोड़ें। xml फ़ाइल

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:textColorSecondary">@color/white</item>
<item name="android:textColor">@color/white</item>
</style>

रंग को अपने रंग से बदलें।


-1

आप फ़ाइलों में सीधे HTML <font>विशेषता का उपयोग करके किसी भी पाठ का रंग बदल सकते हैं xml। उदाहरण के लिए strings.xml:

<resources>
    <string name = "app_name">
        <html><font color="#001aff">Multi</font></html>
        <html><font color="#ff0044">color</font></html>
        <html><font color="#e9c309">Text </font></html>
    </string>
</resources>

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.