जवाबों:
आप एक शैली के साथ कर सकते हैं, लेकिन आपको इसे मुख्य थीम घोषणा में जोड़ना होगा।
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
आप इसे गतिशील रूप से भी बदल सकते हैं, जिसके बारे में मैं यहां विस्तार से बताता हूं:
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
मेरे लिए काम करने लगता है।
उन लोगों के लिए जो इसे पाने के लिए काम नहीं कर सकते हैं "android:" नामस्थान के बिना यह प्रयास करें।
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Action.xml में एक्शनबार के अपने कस्टम अतिप्रवाह आइकन को बदलें।
<resources>
<!-- Base application theme. -->
<style name=“MyTheme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style DONT forget! -->
<item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
</style>
<!-- Styles -->
<style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_your_action_overflow</item>
</style>
</resources>
AndroidManifest.xml के एप्लिकेशन टैग में कस्टम थीम "MyTheme" डालें
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
मज़े करो।@।@
कोई फर्क नहीं पड़ता कि मैंने क्या करने की कोशिश की styles.xml
, किसी भी समाधान ने मेरे लिए काम नहीं किया। अंत में, यदि आपके पास AppCompat 23+ है, जो आपको चाहिए, तो यह सबसे आसान तरीका है जो वास्तव में काम करता है:
toolbar.setOverflowIcon(drawable);
@ adneal का उत्तर सही है (इसलिए इस पर विस्तार के लिए यह केवल एक सामुदायिक विकि स्पष्टीकरण है)।
टिप्पणियों में से एक ने सुझाव दिया कि ऐसा करने की गलतफहमी हो सकती है, इसलिए मेरा जवाब सिर्फ एक और उदाहरण है कि ओवरफ्लो आइकन छवि को कैसे ओवरराइड किया जाए।
नीचे दिया गया कोड ADT नमूना न्यू एंड्रॉइड प्रोजेक्ट से टेम्पलेट शैलियों पर आधारित है। कोड styles.xml
फ़ाइल से res/values
फ़ोल्डर में आता है ।
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>
यह उपर्युक्त कोड क्या करता है, डिफ़ॉल्ट ओवरफ्लो आइकन को बदल दिया जाता है, जो भी नामांकित हो, उसके साथ ic_menu_moreoverflow
। यदि आप इसका परीक्षण करने का एक त्वरित तरीका चाहते हैं, तो अपने ऐप के लॉन्चर आइकन फ़ाइल नाम का उपयोग करें, जो यह स्पष्ट करेगा कि यह कैसे काम करता है।
ActionBar
स्टाइल को समझने की कोशिश करते समय उपयोग करने के लिए एक उपयोगी संसाधन है:
वहां आप अपने ओवरफ्लो आइकन के लिए उपयोग करने के लिए विशिष्ट रंगों को परिभाषित कर सकते हैं, और ज़िप फ़ाइल में आपके लिए सही styles.xml
फ़ाइल शामिल होगी ।
ओवरफ़्लो आइकन रंग परिवर्तन के लिए, आप बस जोड़ सकते हैं
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
या
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
यह आइकन को बदल देगा, जो भी रंग आप चाहते हैं उसे चुनें और ओवरफ्लोविक के रूप में सेट करें।
लंबी खोज के बाद मुझे जो मार्गदर्शन मिला, उसका पालन करना चाहिए:
विषय के भीतर आइटम को theme.xml में जोड़ें:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
उसी फ़ाइल में शैली में आइकन जोड़ें जिसका अर्थ है कि थीम। xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
कस्टम आइकन देखें जिसे आप बदलना चाहते हैं
इसने मेरे लिए काम किया