অ্যাকশনবার পাঠ্যের রঙ


288

আমি কীভাবে অ্যাকশনবারের পাঠ্যের রঙ পরিবর্তন করতে পারি? আমি হোলো হালকা থিম উত্তরাধিকার সূত্রে পেয়েছি, আমি অ্যাকশনবারের পটভূমিটি পরিবর্তন করতে সক্ষম হয়েছি কিন্তু পাঠ্যের রঙ পরিবর্তন করতে টুইঙ্কের বৈশিষ্ট্যটি কী তা খুঁজে পাচ্ছি না।


ঠিক আছে, আমি অ্যান্ড্রয়েড: টেক্সট কালারপ্রাইমারি বৈশিষ্ট্যটি দিয়ে পাঠ্যের রঙ পরিবর্তন করতে সক্ষম হলাম তবে অ্যাকশনবার বোতামে ওভারফ্লো হওয়ার পরে প্রদর্শিত ড্রপডাউন মেনুটির পাঠ্যের রঙও পরিবর্তিত হয়। কীভাবে এই ড্রপডাউন মেনু / তালিকার রঙ পরিবর্তন করবেন?


সবেমাত্র একটি সমাধান পোস্ট করেছেন যা আমার পক্ষে কাজ করেছিল। এখানে দেখতে stackoverflow.com/a/16175220/627827
spaceMonkey

উত্তর:


447

ঠিক আছে, আমি একটি ভাল উপায় খুঁজে পেয়েছি। আমি এখন কেবল শিরোনামের রঙ পরিবর্তন করতে সক্ষম। আপনি সাবটাইটেলটিও টুইট করতে পারেন।

এখানে আমার স্টাইলস। এক্সএমএল:

<?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
তৈরি করবে না - এডিটি অভিযোগ করে যে এর জন্য v13 বা তার বেশি প্রয়োজন (তাই ... বেশিরভাগ অ্যান্ড্রয়েড হ্যান্ডসেটগুলিতে কাজ করবে না :()
অ্যাডাম

8
@ অ্যাডাম আমার একই সমস্যা ছিল, তবে পরবর্তী উত্তরগুলি আমার জন্য কাজ করে - পিতামাতার পরিবর্তে = "@ অ্যান্ড্রয়েড: শৈলী / পাঠ্য অ্যাপ্লায়েন্স.হলো.উইডজেট।অ্যাকশনবার। টাইটেল" ব্যবহার করুন প্যারেন্ট = "@ অ্যান্ড্রয়েড: শৈলী / পাঠ্য উপস্থিতি"
বকুরজিয়াস

8
আপনি যদি অ্যাপকম্প্যাট লাইব্রেরি ব্যবহার করছেন তবে অ্যাপো কমপ্যাট দিয়ে হোলো প্রতিস্থাপন করুন। এটি কাজ করে
শে

3
@ লৌগ_ত্যাগ উইজেট ব্যবহার করুন.অ্যাপকম্প্যাট.লাইট.অ্যাকশনবার
শা

97

আমি একটি উপায় খুঁজে পেয়েছি যা ActionBar( শেরলক , কম্প্যাট এবং নেটিভ ) এর যে কোনও স্বাদে ভালভাবে কাজ করে :

শিরোনাম সেট করতে কেবল এইচটিএমএল ব্যবহার করুন এবং পাঠ্যের রঙ নির্দিষ্ট করুন। উদাহরণস্বরূপ, অ্যাকশনবার পাঠ্যের রঙটিকে লাল রঙে সেট করতে , কেবল এটি করুন:

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

আপনি #FF0000শব্দের পরিবর্তে রেড হেক্স কোড ব্যবহার করতে পারেন red। যদি আপনার এটি নিয়ে সমস্যা হয় তবে অ্যান্ড্রয়েড এইচটিএমএল.ফর্মএইচটিএমএল (স্ট্রিং) <ফন্টের রঙ = '#'> পাঠ্য </ font> জন্য কাজ করে না দেখুন


অতিরিক্তভাবে, আপনি যদি কোনও রঙের সংস্থান ব্যবহার করতে চান, এই কোডটি সঠিক এইচএক্স স্ট্রিংটি পেতে এবং প্রয়োজনে আলফাটি অপসারণ করতে ব্যবহার করা যেতে পারে ( ফন্ট ট্যাগ আলফা সমর্থন করে না):

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 () পদ্ধতিতে স্ট্রিং রাখতে হবে এবং আপনি পদ্ধতিতে একাধিক পরামিতি স্থাপন করছেন। "," দ্বারা "+" প্রতিস্থাপন করার সময় এটি পুরোপুরি কাজ করে :-)।
পিনইন_সামু

3
কয়েক দশকের সন্ধানের পরেও এটি সবচেয়ে সহজ সমাধান! দারূন কাজ!
বিএমকেএ

2
@ এমএসআই, আপনি হেক্স মানগুলিও ব্যবহার করতে পারেন, কেবল এটির redসাথে প্রতিস্থাপন করুন " + color + "
ফিল

1
@ এসএমএসআই, আপনি কি এই পোস্টটির পরামর্শ হিসাবে চেষ্টা করতে পারেন (আমার প্রশ্নটিও আপডেট করেছে)? শুধু প্রতিস্থাপন #FF0000সঙ্গে "+color+"
ফিল

1
তোমাকে ধন্যবাদ ফিল এটি নিখুঁতভাবে কাজ করছে! আমি এইভাবে চেষ্টা করেছি: getSupportActionBar ()। SetTitle (Html.fromHtml ("<<font color = '" + color + "'>" + "হোম" + "</font>")); শুধু of এর জায়গায় 'ব্যবহার করতে হবে \
এমএসআইস্লাম

93

আমি আপনার মতো একই সমস্যা পেয়েছি, এটি একটি হলো.লাইট থিম তবে আমি অ্যাকশনবার রঙটি স্টাইল করতে চেয়েছিলাম, তাই আমার পাশাপাশি পাঠ্যের রঙ এবং শিরোনাম এবং মেনু উভয়ই পরিবর্তন করা দরকার। সুতরাং শেষে আমি গিট হাব গিয়েছিলাম এবং উত্স কোডটি দেখেছি যতক্ষণ না আমি অভিশাপের সঠিক শৈলীটি খুঁজে পাই:

<?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আপনি চান!


আমাকে এই এক্সএমএলটি কোথায় ব্যবহার করতে হবে? মান বা মান-ভি 11 বা মান ভ -14 ??
DroidLearner

উত্তরটি ফেব্রুয়ারী / ২০১২ থেকে, তখন ভি 14 ছিল না। নিশ্চিতভাবে ভি 11।
বুডিয়াস

3.0 এর নীচে সিস্টেমে অ্যাকশনবার নেই।
বুডিয়াস

আমি অ্যাকশন বার শার্লক ব্যবহার করছি এবং আমি সমাধানটি পেয়েছি। ধন্যবাদ :)
ড্রয়েডলিয়ারার

3
অ্যাকশনবার শেরলকের জন্য আপনাকে অ্যাকশনবারের নির্দিষ্ট নাম ব্যবহার করতে হবে এবং আপনি এই জেনারেটরটি ব্যবহার করতে পারেন: jgilfelt.github.com/android-actionbarstylegenerator আমি যেখানে কাজ করি সেখানে আমরা সর্বদা এটি ব্যবহার করি। এটি খুব ভাল
বুডিয়াস

67

অ্যাকশনবার আইডি সরাসরি উপলভ্য নয়, সুতরাং আপনাকে এখানে কিছুটা হ্যাকিং করতে হবে।

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
আপনি যদি এআইপিএল স্তরের <11 চালাচ্ছেন, অ্যাকশনবার শেরলক এবং আপনি নিজের জন্য একটি ব্যয়বহুল কলটি সংরক্ষণ করতে চান তবে আপনি প্রথমে getIndentifier()দেখতে পারেন (TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);(এটি বাতিল নয় কিনা তা নিশ্চিত হয়ে নিন)।
আন্দ্রে

"অ্যাকশনবার আইডি সরাসরি উপলভ্য নয়" আসলে আমার ক্ষেত্রে টুলবারটি সহজেই অ্যাক্সেসযোগ্য যেমন Toolbar toolbar = findViewById(R.id.toolbar);com.google.android.material.appbar.AppBarLayouttoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
xML

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

এটি অ্যাকশন বারের মূলটিতে যুক্ত করুন। আমার এই সমস্যা ছিল

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

অ্যাকশনমেনু টেক্সটল কালার - অ্যাকশন বারের পাঠ্যের জন্য পাঠ্যের রঙ পরিবর্তন করে, এটি যখন এর অংশ ছিল তখন কখনই কাজ করে না Widget.Styled.ActionBar, তাই আমাকে এটিকে মূলটিতে যুক্ত করতে হয়েছিল। অন্যান্য 2 টি বৈশিষ্ট্য অ্যাকশন বারের শিরোনাম এবং সাবটাইটেল পরিবর্তন করে।


"অ্যাকশনমেনু টেক্সটকলার" এর পরিবর্তে "অ্যান্ড্রয়েড: অ্যাকশনমেনু টেক্সটকালার" ব্যবহার করুন। :)
অঙ্কিতরক্স

20

অ্যাকশন বারে এইচটিএমএল স্ট্রিং সেট করা SDK v21 + এর ম্যাটেরিয়াল থিমটিতে কাজ করে না

আপনি যদি এটি পরিবর্তন করতে চান তবে আপনার প্রাথমিক স্টাইলের রঙটি সেট করা উচিত। এক্সএমএল

<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

স্টাইলস.এক্সএমএল এ করার জন্য সবচেয়ে সোজা-অগ্রসর উপায়।

গুগলের টেম্পলেট স্টাইলস.এক্সএমএল বর্তমানে নিম্নলিখিতগুলি উত্পন্ন করে:

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

আপনি যদি রঙটি অন্য কোনও কিছুর কাছে কাস্টমাইজ করতে চান তবে আপনি রঙগুলিতে নিজের রঙ নির্দিষ্ট করতে পারেন x

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

দ্রষ্টব্য: এটি শিরোনামের রঙ এবং অ্যাকশনবারে প্রদর্শিত কোনও মেনু আইটেমের শিরোনামকে পরিবর্তন করে।


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>

আমি হালকা থিম, গা dark় অ্যাকশন বার এবং সাদা পাঠ্যের জন্য চেষ্টা করছি। আপনার কোডটি আমি এখনও অবধি খুঁজে পেয়েছি যার কোনও প্রভাব নেই, তবে এটি পুরো অ্যাকশন বারটিকে সাদা করে তোলে। কোন ধারণা কি হতে পারে? হ্যাঁ আমি জানি এটি দেড় বছরের পুরনো। :-)
নাস্তে

এটি আমার সমস্যা সমাধানে আমাকে সহায়তা করেছিল। আমার কেবল দুটি যোগ করার দরকার ছিল <item name="android:titleTextStyle"> এবং <item name="titleTextStyle"> কারণ আমি অ্যাপকম্প্যাট সমর্থন লাইব্রেরিটি ব্যবহার করছিলাম।
রক লি

শিরোনাম নিখোঁজ
জাইহম্বারটো

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. ক্রিয়াকলাপের লেআউট এক্সএমএলে সরঞ্জামদণ্ড যুক্ত করুন। এখানে আমরা আমাদের কাস্টম (ওভাররাইট থিম) সেট করব, নোট 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. আপনার স্টাইল.এক্সএমএলে আপনাকে কাস্টম রঙ সেট করতে সেই দুটি স্টাইলটি ওভাররাইট করতে হবে:

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

এটা লোকেরা

পিএস যদি আপনি আমাকে জিজ্ঞাসা করেন আমি বলব: হ্যাঁ, পুরো থিম জিনিসটি একটি জগাখিচুড়ি।


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

এটি আপনার ক্রিয়াকলাপের অনক্রিটে যুক্ত করার চেষ্টা করুন। প্রায় প্রতিটি অ্যান্ড্রয়েড সংস্করণে কাজ করে।

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

অথবা

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

আপনার এইরকম একটি স্ট্রিং লাগানো উচিত: স্ট্রিং রঙিনTitle = "<ফন্টের রঙ = '# এফএফএফএফএফএফ'>" + আপনার_Title + "</ font>"; Html.fromHtml (coloredTitle);
Tincho825

2

প্রচুর পদ্ধতি ব্যবহার করে দেখুন, এপিআই-র স্বল্প সংস্করণে একটি সম্ভাব্য পদ্ধতি হ'ল <item name="actionMenuTextColor">@color/your_color</item>অ্যান্ড্রয়েড নামস্থান ব্যবহার করবেন না, আশা আপনাকে সহায়তা করতে পারে

পুনশ্চ:

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


0

একটি দুর্দান্ত সমাধান হ'ল একটি স্প্যানিয়েবল স্ট্রিংবিল্ডার ব্যবহারকারীর এবং রঙটি সেভাবে সেট করা। এমনকি আপনি স্ট্রিংয়ের বিভিন্ন অংশে বিভিন্ন রঙ ব্যবহার করতে পারেন, চিত্রগুলি যোগ করতে পারেন ইত্যাদি

নতুন সমর্থন লাইব্রেরির সাথে পরীক্ষিত।

অ্যান্ড্রয়েড দেখুন : টেক্সটভিউ.সেটটেক্সট () ব্যবহার করে কোনও স্ট্রিংয়ের অংশ রঙ করা?


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 (ললিপপ) এর জন্য আপনাকে অ্যান্ড্রয়েড ব্যবহার করতে হবে : অ্যাকশনবারপপআপটি ওভারফ্লো মেনুতে পাঠ্য রঙটি সেট করতে set


0

সর্বাধিক সহজ উপায়:
আপনার স্টাইল.এক্সএমএল ফাইলটিতে এই দুটি লাইন যুক্ত করুন

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

আপনার রঙের সাথে রঙটি প্রতিস্থাপন করুন।


-1

আপনি সরাসরি ফাইলগুলিতে এইচটিএমএল <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>

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.