Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में ऑप्शन मेनू का बैकग्राउंड रंग कैसे बदलें

स्टाइल्स और थीम्स के माध्यम से ऑप्शन मेनू का रंग बदलना

एंड्रॉइड में ऑप्शन मेनू (टूलबार/एक्शन बार मेनू) का बैकग्राउंड और टेक्स्ट रंग बदलने के लिए स्टाइल्स/थीम्स का उपयोग करना सबसे सही तरीका है। यह विधि पूरे ऐप में सुसंगत स्टाइलिंग सुनिश्चित करती है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें और "Empty Activity" टेम्पलेट चुनें।

चरण 2: मुख्य लेआउट

res/layout/activity_main.xml - साधारण लेआउट जिसमें मेनू ट्रिगर करने के लिए कंटेंट हो:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:padding="16dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ऑप्शन मेनू रंग बदलना"
        android:textColor="#1A7902"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="16dp"
        android:gravity="center"
        android:text="टूलबार मेनू आइकन पर टैप करें"
        android:textSize="18sp" />

</LinearLayout>

चरण 3: मेनू XML बनाएं

res/menu/menu_items.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/menu_item_1"
        android:title="मेनू 1"
        app:showAsAction="never" />

    <item
        android:id="@+id/menu_item_2"
        android:title="मेनू 2"
        app:showAsAction="never" />

    <item
        android:id="@+id/menu_item_3"
        android:title="मेनू 3"
        app:showAsAction="never" />

</menu>

चरण 4: रंग परिभाषित करें

res/values/colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
    <color name="menuBackground">#87CEEB</color> <!-- स्काई ब्लू -->
    <color name="menuTextColor">#008577</color>
</resources>

चरण 5: स्टाइल्स में मेनू थीम परिभाषित करें

res/values/styles.xml (या themes.xml एंड्रॉइड 12+ में):

<resources>
    <!-- बेस ऐप थीम -->
    <style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <!-- ऑप्शन मेनू के लिए स्पेसिफिक थीम -->
    <style name="Theme.MyApp.Menu" parent="ThemeOverlay.MaterialComponents.Dark.ActionBar">
        <item name="android:itemBackground">@color/menuBackground</item>
        <item name="android:textColorPrimary">@color/menuTextColor</item>
        <item name="actionMenuTextColor">@color/menuTextColor</item>
    </style>
</resources>

चरण 6: MainActivity में मेनू इन्फ्लेट करें

package com.app.sample;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;

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) {
        getMenuInflater().inflate(R.menu.menu_items, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.menu_item_1) {
            // मेनू 1 क्लिक हैंडल करें
            return true;
        } else if (id == R.id.menu_item_2) {
            // मेनू 2 क्लिक हैंडल करें
            return true;
        } else if (id == R.id.menu_item_3) {
            // मेनू 3 क्लिक हैंडल करें
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

चरण 7: थीम को एक्टिविटी या ऐप पर लागू करें

AndroidManifest.xml में थीम सेट करें:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.app.sample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.MyApp">

        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:theme="@style/Theme.MyApp.Menu"> <!-- मेनू थीम यहाँ -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

एडवांस्ड: पॉपअप मेनू के लिए अलग स्टाइल

यदि आप PopupMenu का उपयोग कर रहे हैं:

<style name="CustomPopupMenu" parent="ThemeOverlay.MaterialComponents.Light">
    <item name="android:itemBackground">@color/menuBackground</item>
    <item name="android:textColor">@color/menuTextColor</item>
</style>

फिर Java/Kotlin में:

Context wrapper = new ContextThemeWrapper(this, R.style.CustomPopupMenu);
PopupMenu popup = new PopupMenu(wrapper, anchorView);

महत्वपूर्ण एट्रिब्यूट्स

  • android:itemBackground - मेनू आइटम का बैकग्राउंड रंग/ड्रॉएबल
  • android:textColorPrimary - मेनू टेक्स्ट का प्राथमिक रंग
  • actionMenuTextColor - टूलबार में दिखने वाले मेनू टेक्स्ट का रंग
  • android:itemTextAppearance - फॉन्ट, आकार आदि के लिए टेक्स्ट अपीयरेंस
नोट: एंड्रॉइड 12+ (API 31) में themes.xml फ़ाइल का उपयोग होता है। मटेरियल कंपोनेंट्स थीम (Theme.MaterialComponents.*) का उपयोग करने से बेहतर संगतता मिलती है।
  1. Tkinter के OptionMenu विजेट का मेनू बैकग्राउंड कलर कैसे बदलें? Tkinter के OptionMenu विजेट का मेनू बैकग्राउंड कलर कैसे बदलें?

    एक ऐसे परिदृश्य पर विचार करें जहां हमें ड्रॉपडाउन सूची के रूप में विकल्पों के साथ एक मेनू प्रदर्शित करने की आवश्यकता है। इस विशेष सुविधा को प्राप्त करने के लिए, Tkinter एक OptionMenu विजेट प्रदान करता है जिसमें इसमें विकल्प और आइटम की सूची जोड़ने की सुविधा होती है। हम OptionMenu विजेट के डिफ़ॉल्ट व्

  1. iOS पर नोट्स की पृष्ठभूमि रंग कैसे बदलें iOS पर नोट्स की पृष्ठभूमि रंग कैसे बदलें

    यदि आप iOS में नोट्स ऐप का उपयोग कर रहे हैं, तो आप शायद इससे नफरत करते हैं कि यह आपके डिवाइस की सेटिंग के आधार पर एक सादा पृष्ठभूमि उपयोग करता है। यदि आपने लाइट मोड सक्षम किया है, तो आपको एक हल्की पृष्ठभूमि दिखाई देगी, और डार्क मोड का उपयोग करते समय एक डार्क पृष्ठभूमि। हालांकि, आप iOS में एक नोट की

  1. इंस्टाग्राम स्टोरी बैकग्राउंड कलर आसानी से कस्टमाइज़ करें: चरणबद्ध गाइड इंस्टाग्राम स्टोरी बैकग्राउंड कलर आसानी से कस्टमाइज़ करें: चरणबद्ध गाइड

    इंस्टाग्राम सोशल मीडिया उत्साही लोगों के लिए एक अद्भुत प्लेटफॉर्म है। चाहे अपने फोटोग्राफी कौशल का प्रदर्शन करना हो या अपनी नवीनतम सोलो-ट्रिप की स्पष्ट तस्वीरें शेयर करना हो, इंस्टाग्राम एक आदर्श माध्यम है। इसकी अनूठी विशेषताओं, कूल इंटरफेस और अंतहीन संभावनाओं के कारण, इंस्टाग्राम बेहद लोकप्रिय है,