简体   繁体   English

如何在Android中更改动作栏的颜色

[英]how to change color of part of actionbar in android

my actionbar title is 2 word, i want to use 2 color for each word like this image : 我的动作栏标题是2个字,我想为每个字使用2种颜色,例如这张图片: 在此处输入图片说明

now i`m using these code to change text color: 现在我正在使用以下代码更改文本颜色:

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:actionBarSize">45dp</item>
        <item name="actionBarSize">45dp</item>


        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>
         <item name="android:windowActionBarOverlay">true</item>
    </style>


    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
        <item name="android:background">@color/actionbar</item>
        <item name="background">@color/actionbar</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="@android:style/TextAppearance">
        <item name="android:textColor">@color/white</item>
        <item name="android:textSize">15sp</item>
</style>

but those code change both word color, so how can i do that? 但是那些代码会同时改变两个单词的颜色,所以我该怎么做?

Put it in your oncreate() 把它放在你的oncreate()

String text = "<font color='#F44336'>Your</font><font color='#FF9800'>Title</font>";

        getSupportActionBar().setTitle(Html.fromHtml(text));

Create a separate style for your subtitle. 为字幕创建单独的样式。 Add this in bottom: 在底部添加:

<style name="MyTheme.ActionBar.SubTitleTextStyle" parent="android:style/TextAppearance">
    <item name="android:textColor">@color/black</item>
    <item name="android:textSize">12sp</item>
</style>

Then change the 然后更改

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

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

to

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

<item name="subtitleTextStyle">@style/MyTheme.ActionBar.SubTitleTextStyle</item>

Try with spannable 尝试使用spannable

    String part1 = "Actionbar ";
    String part2 = "TITLE";
    SpannableString s = new SpannableString(part1 + part2);
    s.setSpan(new ForegroundColorSpan(Color.RED), part1.length(), part1.length()+part2.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// Update the action bar title with the spannable instance
    getActionBar().setTitle(s);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM