programing

작업 표시줄 텍스트 색상

telebox 2023. 9. 24. 12:45
반응형

작업 표시줄 텍스트 색상

ActionBar의 텍스트 색상을 변경하려면 어떻게 해야 합니까?홀로 라이트 테마를 물려받았습니다. 액션바의 배경을 변경할 수는 있지만 텍스트 색상을 변경하기 위해 조정할 속성이 무엇인지 알 수 없습니다.


Android:textColorPrimary 속성으로 텍스트 색상을 변경할 수 있지만 ActionBar 버튼에 오버플로우가 발생할 때 표시되는 드롭다운 메뉴의 텍스트 색상도 변경됩니다.드롭다운 메뉴 / 목록의 색상을 변경하는 방법을 알고 계십니까?

좋아요, 더 좋은 방법을 찾았어요.저는 이제 제목의 색상만 바꿀 수 있습니다.자막을 조정할 수도 있습니다.

내 style.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>

맛의 잘 을 찾았습니다.ActionBar(셜록, 호환네이티브):

html을 사용하여 제목을 설정하고 텍스트 색상을 지정하면 됩니다.예를 들어 수행 표시줄 텍스트 색을 빨간색으로 설정하려면 다음 작업을 수행하기만 하면 됩니다.

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

를 .#FF0000라는 말 red. 문제가 있는 경우 Android html.fromHtml(String)이 <font color='#'>text </font>에 작동하지 않습니다.


또한 색상 리소스를 사용하려면 이 코드를 사용하여 올바른 HEX String을 얻고 필요한 경우 알파를 제거할 수 있습니다(글꼴 태그는 알파를 지원하지 않음).

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))));

저도 당신과 같은 문제를 겪고 있었습니다. 홀로입니다.테마는 가볍지만 액션바 색상을 스타일화하고 싶어서 텍스트 색상과 제목과 메뉴를 모두 변경해야 했습니다.그래서 마지막에는 git hub에 가서 소스코드를 보고 올바른 스타일을 찾을 때까지

<?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당신이 원해요!

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);
    }
}

가장 간단한 방법은 styles.xml 스타일에서 이 작업을 수행하는 것입니다.

Google의 templatestyles.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>

색상을 다른 것으로 사용자 지정하려면 colors.xml로 자신의 색상을 지정하거나 Android:textColorPrimary 특성을 사용하여 Android의 내장 색상을 사용할 수도 있습니다.

<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>

참고: 제목의 색상과 수행 표시줄에 표시되는 메뉴 항목의 제목이 변경됩니다.

오래된 주제이지만 미래의 독자들을 위해 툴바를 사용하면 모든 것이 매우 쉬워집니다.

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

간단한 한줄 코드로 끝냈습니다.

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

수행 표시줄의 루트에 추가합니다.제가 이런 문제가 있었습니다.

<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가지 속성은 수행 표시줄의 제목과 부제를 바꿉니다.

작업 표시줄에 HTML 문자열을 설정하면 SDK v21+의 Material 테마에서 작동하지 않습니다.

변경하려면 스타일 .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>    

부제 스타일을 지정하려면 사용자 지정 스타일에 부제 스타일을 추가하기만 하면 됩니다.

<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>

많은 답변이 더 이상 사용되지 않으므로 스레드를 업데이트하고 ActionBar(도구 모음) 및 ActionBar 팝업 메뉴에서 텍스트 색 및 배경 색을 변경하는 방법을 보여드리겠습니다.

Android(2018년 5월 기준)에서 액션바(Toolbar)와 함께 작업하는 가장 최근의 접근 방식은 무액션바와 함께 테마를 사용하고 대신 툴바를 사용하는 것입니다.

필요한 것은 다음과 같습니다.

  1. AppCompat Activity를 확장하는 Activity에서 도구 모음을 선언합니다.

    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. styles.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>
    

여기까지 입니다 여러분.

p.s. 저에게 묻는다면 저는 이렇게 말할 것입니다: 네, 이 모든 주제는 정말 엉망진창입니다.

API >= 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>

이 기능들은 잘 작동합니다.

자바에서

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);

인코틀린

다음과 같은 확장 기능을 사용할 수 있습니다.

private fun ActionBar.setTitleColor(color: Int) {
    val text = SpannableString(title ?: "")
    text.setSpan(ForegroundColorSpan(color),0,text.length, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
    title = text
}

그리고 당신의 것에 지원합니다.ActionBar와 함께

actionBar?.setTitleColor(Color.RED)

이것은 제가 모든 답변을 확인하고 사용한 솔루션입니다.

<!-- 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>

필요한 색상을 변경하면 됩니다.

생성 시 활동에 이 내용을 추가해 봅니다.거의 모든 Android 버전에서 작동합니다.

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

아니면

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

그냥 테마 스타일로 해주세요.

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

많은 방법을 시도해 보세요, API의 낮은 버전에서는, 실현 가능한 방법은<item name="actionMenuTextColor">@color/your_color</item>Android 네임스페이스를 사용하지 마십시오. 희망이 당신을 도울 수 있습니다.

ps:

  <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>

가장 간단한 방법은 다음과 같습니다.
style.xml 파일에 이 두 줄을 추가합니다.

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

색상을 사용자의 색상으로 대체합니다.

여기 Style.xml은 다음과 같습니다.

 <resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 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/MyTheme</item>
</style>


 <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>

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

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

당신은 추가해야 합니다.

<item name="actionBarTheme">@style/MyTheme</item> 

앱 테마에서

저 같은 경우에는 네이티브 액션바를 사용하는 대신 안드로이드X 툴바로 바꿨습니다.또한 활동에서 도구 모음에 액세스하기 위해서는 보기 바인딩에 의존하지만 사용할 수 있습니다.findViewById(...)그것을 위하여.

(관련 없는 코드를 제거했습니다.)

styles.xml:

...
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
  ...
</style>
...

activity_main.xml:

...
<androidx.appcompat.widget.Toolbar
  android:id="@+id/toolbarMain"
  android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
  app:titleTextColor="@color/colorOnPrimary"
  ...
/>
...

MainActivity.kt:

class MainActivity : AppCompatActivity() {

  private lateinit var binding: ActivityMainBinding
  ...

  override fun onCreate(savedInstanceState: Bundle?) {
    ...
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
    setSupportActionBar(binding.toolbarMain)
    ...
  }

  ...
}

좋은 해결책은 SpannableStringBuilder를 사용하고 색상을 그렇게 설정하는 것입니다.스트링의 다른 부분에 다른 색상을 사용할 수도 있고, 이미지 추가 등도 가능성도 있습니다.

새 지원 라이브러리를 사용하여 테스트했습니다.

Android 보기: TextView.setText()를 사용하여 문자열의 일부를 색칠합니다.

이것은 내가 안드로이드 apis를 사용하고 있기 때문에 권장되는 솔루션이 아니라 애플리케이션이 여기서는 불가능한 조건인 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();
    }

}

Android 5(롤리팝)의 경우 오버플로 메뉴의 textColor설정하려면 Android:actionBarPopupTheme을 사용해야 합니다.

html 속성을 파일에 직접 사용하여 텍스트의 색상을 변경할 수 있습니다.예를 들어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>

enter image description here

<android.support.v7.widget.Toolbar
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/toolbar"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@color/color_primary"
  android:theme="@style/GalaxyZooThemeToolbarDarkOverflow"
  app:popupTheme="@style/Theme.AppCompat.NoActionBar" />


<style name="GalaxyZooThemeToolbarDarkOverflow" parent="Theme.AppCompat.NoActionBar">
  <!-- android:textColorPrimary is the  color of the title text
       in the Toolbar, in the Theme.AppCompat theme:  -->
  <item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>
 
  <!-- android:textColorPrimaryInverse is the  color of the title
       text in the Toolbar, in the Theme.AppCompat.Light theme:  -->
  <!-- <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item> -->
 
  <!-- android:actionMenuTextColor is the color of the text of
        action (menu) items in the Toolbar, at least in the
        Theme.AppCompat theme.
        For some reason, they already get the textColorPrimary
        when running on API 21, but not on older versions of
        Android, so this is only necessary to support older
        Android versions.-->
        <item name="actionMenuTextColor">@color/abc_primary_text_material_light</item>
  <!-- android:textColorSecondary is the color of the menu
       overflow icon (three vertical dots) -->
  <item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>
 
  <!-- This would set the toolbar's background color,
        but setting this also changes the popup menu's background,
        even if we define popupTheme for our <Toolbar> -->
  <!-- <item name="android:background">@color/color_primary</item> -->
</style>


**Reference:**
[https://www.murrayc.com/permalink/2014/10/28/android-changing-the-toolbars-text-color-and-overflow-icon-color/][1]

프로그래밍 방식으로 색상을 설정해야 하는 경우 다음과 같이 할 수 있습니다.

static void setActionBarTextColor(Activity activity, int color)
{
      ActionBar actionBar = activity instanceof AppCompatActivity
                    ? ((AppCompatActivity) activity).getSupportActionBar()
                    : activity.getActionBar();
      String title = activity.getTitle(); // or any title you want
      SpannableString ss = new SpannableString(title);
      ss.setSpan(new ForegroundColorSpan(color), 0, title.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
      actionBar.setTitle(ss);
}

아래 코드 스니펫과 같이 app:theme 속성으로 툴바에 테마를 정의해야 합니다.

<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:theme="@style/AppTheme.ToolbarFont" />

그 전에 styles.xml 파일에 테마를 추가하고 아래 코드 스니펫처럼 해당 스타일로 글꼴-패밀리를 정의해야 합니다.

<style name="AppTheme.ToolbarFont" parent="AppTheme">
<!--This line changes the color of text in Toolbar-->
<item name="android:textColorPrimary">@color/black</item>
<!--This line changes the color of icons in toolbar (back, overflow menu icons)-->
<item name="android:textColorSecondary">@color/azul</item>
<item name="textAllCaps">false</item>
<item name="android:textSize">16sp</item>
<item name="android:fontFamily">@font/montserrat_semi_bold</item>

커스텀 폰트를 추가하려면 아래 스크린샷처럼 res 디렉토리에 "폰트"라는 이름의 폴더를 만들어야 합니다.

enter image description here

툴바에서 사용자 지정 글꼴을 만들었습니다.

enter image description here

사용자 지정 작업 표시줄을 사용하는 경우 다음 속성을 사용할 수 있습니다.

app:titleTextColor="@color/...."
app:subtitleTextColor="@color/...." 
또는 다음과 같은 방법으로.
setTitleTextColor()

자세한 속성은 이 링크를 확인하십시오.

언급URL : https://stackoverflow.com/questions/5861661/actionbar-text-color

반응형