2012-01-04 14 views
23

मैं अपने ऐप के लिए एक्शनबार_स्टाइल.एक्सएमएल बनाना चाहता हूं और मैं अपने ऐप लोगो/आइकन से अलग लोगो का उपयोग करना चाहता हूं।एक्सएमएल में एक्शनबार (लोगो से अलग) के लिए कस्टम लोगो परिभाषित करें?

प्रोग्राममैटिकल रूप से इसे कैसे बदलें यह स्पष्ट है: Change logo that appears in Android ActionBar programatically लेकिन इस तरह मुझे इसे प्रत्येक गतिविधि में कोड करने की आवश्यकता होगी।

क्या xml में कस्टम एक्शनबारब्लॉग को परिभाषित करने के लिए कोई XML टैग है?

मेरी Customstyles.xml

<style name="CustomActionBar0" parent="android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@drawable/action_bg0</item> 
</style> 

एंड्रॉयड styles.xml यह है करने के लिए नहीं लगता है ...

<style name="Widget.ActionBar"> 
    <item name="android:background">@android:drawable/action_bar_background</item> 
    <item name="android:displayOptions">useLogo|showHome|showTitle</item> 
    <item name="android:divider">@android:drawable/action_bar_divider</item> 
    <item name="android:height">?android:attr/actionBarSize</item> 
    <item name="android:paddingLeft">0dip</item> 
    <item name="android:paddingTop">0dip</item> 
    <item name="android:paddingRight">0dip</item> 
    <item name="android:paddingBottom">0dip</item> 
    <item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Title</item> 
    <item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Subtitle</item> 
    <item name="android:progressBarStyle">@android:style/Widget.ProgressBar.Horizontal</item> 
    <item name="android:indeterminateProgressStyle">@android:style/Widget.ProgressBar.Small</item> 
    <item name="android:homeLayout">@android:layout/action_bar_home</item> 
</style> 

उत्तर

2

आप अपनी शैली एक्सएमएल में लोगो शैली नहीं है, तो आप बस का उपयोग android:logo अपने मैनिफेस्ट में, का उपयोग ActionBar में सेट करने के लिए करें। Google से एक प्रोजेक्ट यहां दिया गया है, जो आपको दिखाता है कि दोनों के बीच कैसे स्विच करें। http://code.google.com/p/styled-action-bar/

+0

नहीं, एक्शन बार की शैली लागू की गई है, एक्शन बार की पृष्ठभूमि बदल रही है। मैं चाहता हूं कि एक्सएमएल घोषणा द्वारा होम लोगो को बदलना है। प्रोग्रामेटिक रूप से मैं एक्शनबार.सेटलोगो() के साथ ऐसा कर सकता हूं। लेकिन मैं यह नहीं समझ सकता कि एक्सएमएल द्वारा इसे कैसे किया जाए। – KarlKarlsom

+0

@ करलकारल्सॉम मैंने अपनी मूल पोस्ट अपडेट की, उस भ्रम के बारे में खेद है। – adneal

+1

लेकिन एंड्रॉइड: लोगो अन्य औषधि में भी प्रयोग किया जाता है (4.0 में उदाहरण के लिए एक कार्य आइकन)। लेकिन एक्शन बार में मैं एक ग्राफिक चाहता हूं जो लोगो के रूप में उपयुक्त नहीं है। – KarlKarlsom

1

लगता है जैसे आपको एक्शन बार के लिए कस्टम लेआउट का उपयोग करने की आवश्यकता है, इस तरह आप लोगो छवि के लिए जो कुछ भी चाहते हैं उसे परिभाषित कर सकते हैं।

कार्रवाई बार/ActionBarSherlock शैली

<style name="ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse"> 
    <item name="displayOptions">showCustom</item> 
    <item name="android:displayOptions">showCustom</item> 

    <item name="customNavigationLayout">@layout/action_bar_home_icon_default</item> 
    <item name="android:customNavigationLayout">@layout/action_bar_home_icon_default</item> 
    </style> 

@ लेआउट/action_bar_home_icon_default, अपने कस्टम लेआउट है

36

सिर्फ Android के लिए एक मूल्य सेट अपने कस्टम लोगो के साथ: आइकन विशेषता

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

<style name="AppTheme.ActionBarStyle" parent="android:style/Widget.Holo.Light.ActionBar"> 
     <item name="android:background">@drawable/actionbar_background</item> 
     <item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item> 
     <item name="android:icon">@drawable/ic_home</item> 
     <item name="android:indeterminateProgressStyle">@style/IndeterminateProgress</item> 
</style> 
+11

यह काम नहीं कर रहा है – Programmer

+0

एक अद्यतन उत्तर होना अच्छा होगा। – nickfox

-1

हाँ। आप विभिन्न गतिविधियों के लिए अलग लोगो सेट कर सकते हैं। मेनिफेस्ट फ़ाइल में नमूना कोड यहां दिया गया है।

<activity 
    android:name="MyActivity" 
    ***android:icon="@drawable/logo"***    
    android:label="@string/app_name" 
    android:configChanges="orientation"   
    android:screenOrientation="portrait" /> 

इस सहायता की आशा करें। चीयर्स!

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^