2011-07-22 15 views
14

कैसे बदलें, नीचे दिए गए चित्र में दिखाई देने वाले एक्शन बार के दाएं किनारे पर ओवरफ़्लो मेनू आइकन कैसे बदलूं? माई होलो थीम डिफ़ॉल्ट रूप से इस 3 पंक्ति काली स्टैक आइकन निर्दिष्ट करती है और मुझे कुछ और चाहिए। मुझे इसके लिए कोई समाधान नहीं मिल रहा है। मैंने http://developer.android.com/guide/topics/ui/menus.html पर प्रलेखन को देखा है लेकिन यह बहुत मदद नहीं दे रहा है।एंड्रॉइड ओवरफ़्लो मेनू आइकन

धन्यवाद!

"ActionBar"

+0

अकेले कि आइकन छोड़ दें। समय और समय फिर से, उपयोगकर्ता उन डेवलपर्स पर हमला करते हैं जो बुनियादी प्लेटफॉर्म सम्मेलनों का पालन नहीं करते हैं। जब तक आप सकारात्मक रूप से प्रदर्शित नहीं कर सकते कि आपके उपयोगकर्ता आपके एप्लिकेशन को अस्वीकार कर देंगे यदि आप उस आइकन को नहीं बदलते हैं, तो कृपया उस आइकन को अकेले छोड़ दें। ऐसा कहा जा रहा है, मैं नहीं देखता कि वह आइकन कहां बदला जा सकता है, वैसे भी। – CommonsWare

+2

एकमात्र कारण मैं उस आइकन को बदलना चाहता था, इसे काले रंग के बजाय सफेद बनाना है। उस क्षेत्र में मेरी एक्शनबार पृष्ठभूमि बहुत अंधेरा है और आइकन देखना लगभग असंभव है। मैं प्लेटफॉर्म सम्मेलनों या उस तरह नाटकीय कुछ भी नहीं बदल रहा हूं :) – newdev

+0

आह, क्षमा करें, मैंने अतिरंजित किया। कोई सोचता है कि जहां भी आप बार के लिए शैली को नियंत्रित कर रहे हैं, आप उस आइकन को बदल सकते हैं। मुझे एसडीके में आइकन नहीं दिखाई देता था, इसलिए मेरे पास शैलियों। Xml या kin में खोजने की कोशिश करने के लिए कोई खोज स्ट्रिंग नहीं थी। – CommonsWare

उत्तर

16

एक कस्टम शैली को परिभाषित करने के लिए करीब है: उदाहरण के लिए, यह customoverflow फोन करते हैं।

इस शैली में आप जिस तस्वीर का उपयोग करना चाहते हैं उसमें android:src सेट करें। अब पैरेंट Theme.holo के साथ एक शैली बनाएं।

<item name="android:actionOverflowButtonStyle">@style/customoverflow</item> 

मैं सिर्फ यह परीक्षण किया है और यह काम करता है:

इस शैली में आप को परिभाषित करने की जरूरत है।

+2

यह पर्याप्त अनुकूलन योग्य नहीं है। मान लें कि आपके पास एक अंधेरे ओवरफ़्लो बटन के साथ एक हल्की पृष्ठभूमि है। यदि आप एक्शनमोड (सीएबी) के लिए एक गहरा पृष्ठभूमि चुनते हैं, तो आप अतिप्रवाह बटन को एक प्रकाश में स्विच नहीं कर सकते हैं। –

+0

Appcompat में इसे कैसे प्राप्त करें? –

3

मैंने देखा है कि यह सफेद हो जाता है अनुप्रयोग के विषय Holo है, लेकिन यह काले रंग की है जब विषय Holo.Light है

हालांकि, कार्रवाई बार की शैली को बदलने के वारिस के होलो से और बाकी ऐप से होलो से। लाइट समस्या को हल नहीं करता है, लेकिन यह उस शैली की दिशा में इंगित करना चाहिए जिसकी आपको संशोधित करना चाहिए।

मैं क्या करने की कोशिश की है:

<style name="AppThemeLight" parent="android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/ActionBar</item> 
    <item name="android:windowContentOverlay">@drawable/actionbar_shadow</item> 
</style>  
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@color/header_brown</item> 
    <item name="android:titleTextStyle">@style/ActionBarTitle</item> 
    <item name="android:icon">@drawable/header</item>  
</style> 

मैं एक ही समस्या है और मुझे लगता है कि यह एक समाधान

26

आप कुछ इस तरह की कोशिश कर सकते हैं:

<style name="MyTheme" parent="android:style/Theme.Holo.Light"> 
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item> 
</style> 

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow"> 
    <item name="android:src">@drawable/my_action_bTutton_overflow</item> 
</style> 

और AndroidManifest.xml

<application 
    android:theme="@style/MyTheme" > 
0

में Shalafi के समाधान कुछ परिवर्तनों के साथ काम करता है! थीम को निर्दिष्ट करने के लिए आपको थीम को निर्दिष्ट करने की आवश्यकता होगी। थीम के लिए माता-पिता के रूप में होलो, लेकिन इसमें डिफ़ॉल्ट टेक्स्ट रंग बदलने की नकारात्मकता है (कम से कम मेरी शैलियों में)।

संशोधन कोड होना चाहिए:

<style name="AppThemeLight" parent="android:style/Theme.Holo"> 
    <item name="android:actionBarStyle">@style/ActionBar</item> 
    <item name="android:windowContentOverlay">@drawable/actionbar_shadow</item> 
</style>  
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@color/header_brown</item> 
    <item name="android:titleTextStyle">@style/ActionBarTitle</item> 
    <item name="android:icon">@drawable/header</item>  
</style> 
8

आप AppCompat उपयोग कर रहे हैं आप कोड का पालन करके प्राप्त कर सकते हैं।

res/values ​​/ themes.xml

<style name="MyTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflow</item> 

     <!-- Support library compatibility --> 
    <item name="actionOverflowButtonStyle">@style/ActionButtonOverflow</item> 

</style> 

     <style name="ActionButtonOverflow" parent="@style/Widget.AppCompat.ActionButton.Overflow"> 
      <item name="android:src">@drawable/ic_launcher</item> 
     </style> 

और AndroidManifest.xml

<application 
    android:theme="@style/MyTheme" > 
+2

समर्थन लाइब्रेरी संगतता अंतर को इंगित करने के लिए उत्कृष्ट –

0

डुप्लीकेट प्रश्न में, Changing overflow icon in the action bar

यह नीचे के रूप में मेरा उत्तर है,

  1. शैलियों में एक्शनबार के अपने कस्टम ओवरफ्लो आइकन को बदलें।एक्सएमएल

    <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> 
    
  2. रखें कस्टम थीम "MyTheme" AndroidManifest.xml

    <application 
        android:name="com.example.android.MainApp" 
        android:theme="@style/AppTheme"> 
    </application> 
    

के आवेदन टैग में मज़े। @। @

0

मूल रूप से थीम नए एपीआई स्तरों में उपलब्ध अनुकूलन res/values-vXX/styles.xml में जा सकते हैं, जबकि पिछड़े-संगतता से संबंधित अनुकूलन values/styles.xml

01 जा सकते हैं

शालाफी का समाधान कुछ जोड़ों के साथ काम करता है: तो इस कोड को res/values-vXX/styles.xml और res/values/styles.xml दोनों में जोड़ें और यह जादू की तरह काम करेगा!

<style name="AppTheme" parent="android:style/Theme.Holo.Light"> 
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item> 
</style> 

<style name="MyActionButtonOverflow"parent="android:style/Widget.Holo.ActionButton.Overflow"> 
<item name="android:src">@drawable/your_overflow_icon</item> 
</style> 

भी AndroidManifest.xml

में जोड़
<application 
    android:theme="@style/AppTheme" > 
संबंधित मुद्दे