Android ऐप थीम के जरिए मेनू आइटम्स का टेक्स्ट कलर कस्टमाइज़ करना
styles.xml में थीम अट्रिब्यूट बदलकर सभी मेनू आइटम्स का टेक्स्ट कलर एक साथ सेट करने का तरीका।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project।
चरण 2: बेसिक लेआउट
res/layout/activity_main.xml (खाली RelativeLayout):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".MainActivity">
</RelativeLayout>
चरण 3: वेक्टर ड्रॉएबल आइकन बनाएं (वैकल्पिक)
res/drawable/ic_icon.xml - कोई भी वेक्टर एसेट बनाएं या Android Studio के Asset Studio से जनरेट करें।
चरण 4: मेनू रिसोर्स फ़ाइल बनाएं
res/menu/sample_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto">
<item android:id="@+id/item1" android:icon="@drawable/ic_icon" android:title="Item 1" app:showAsAction="ifRoom" />
<item android:id="@+id/item2" android:title="Item 2" app:showAsAction="never" />
<item android:id="@+id/item3" android:title="Item 3" app:showAsAction="never" />
<item android:id="@+id/item4" android:title="Item 4" app:showAsAction="never" />
<item android:id="@+id/item5" android:title="Item 5" app:showAsAction="never" />
</menu>
चरण 5: styles.xml में टेक्स्ट कलर बदलें
res/values/styles.xml:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- मेनू आइटम टेक्स्ट कलर -->
<item name="android:textColor">#FF000F</item>
<!-- या अधिक विशिष्ट: -->
<item name="actionMenuTextColor">#FF000F</item>
</style>
</resources>
चरण 6: MainActivity.java में मेनू इनफ्लेट करें
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.sample_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1: showToast("Item 1 selected"); return true;
case R.id.item2: showToast("Item 2 selected"); return true;
case R.id.item3: showToast("Item 3 selected"); return true;
case R.id.item4: showToast("Item 4 selected"); return true;
case R.id.item5: showToast("Item 5 selected"); return true;
default: return super.onOptionsItemSelected(item);
}
}
private void showToast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
}
चरण 7: AndroidManifest.xml
थीम @style/AppTheme के साथ मानक मैनिफेस्ट।
नोट:android:textColorथीम में सेट करने से ऐप-वाइड टेक्स्ट कलर बदल जाता है। केवल मेनू के लिएactionMenuTextColorयाandroid:actionMenuTextColorका उपयोग करें। टूलबार के लिएToolbar.setTitleTextColor()भी उपयोगी है।
ऐप चलाएं
मेनू खोलें - सभी आइटम्स का टेक्स्ट लाल (#FF000F) रंग में दिखेगा।