2011-06-14 18 views
107

मेरे एप्लिकेशन के मुख्य आइकन में एक छवि में दो भाग होते हैं: एक लोगो और इसके नीचे कुछ अक्षर। यह ऐप के लॉन्चर आइकन के लिए अच्छा काम करता है, लेकिन जब एक्शनबार के बाएं किनारे पर आइकन दिखाई देता है, तो अक्षरों काट दिया जाता है और यह अच्छा नहीं लग रहा है।एंड्रॉइड: ऐप आइकन के अलावा कुछ और होने के लिए एक्शनबार "होम" आइकन कैसे बदलें?

मैं केवल "लोगो" भाग के साथ, आइकन के एक अलग संस्करण के साथ एक्शनबार प्रदान करना चाहता हूं, न कि इसके नीचे के अक्षरों के साथ, लेकिन अब तक खाली हो रहा है। मैं ईमानदारी से इसका कोई जवाब नहीं पा रहा हूं, और मैं खुद को प्रश्न कहीं भी नहीं ढूंढ सकता।

उत्तर

217

एक्शनबार आपके प्रकट होने के android:logo विशेषता का उपयोग करेगा, अगर कोई प्रदान किया जाता है। इससे आपको आइकन (लॉन्चर) और लोगो (एक्शनबार, अन्य चीजों के साथ) के लिए अलग-अलग ड्रॉबल संसाधनों का उपयोग करने देता है।

+2

हां अपडेट किया गया। आप अपने एक्शन बार के लिए एक कस्टम शैली का उपयोग भी कर सकते हैं ताकि लोगो या आइकन प्रदान किया जा सके जो मैनिफेस्ट द्वारा प्रदान किए गए लोगों के स्थान पर उपयोग किया जाएगा। – adamp

+0

जानकारी के लिए बहुत बहुत धन्यवाद। यह मेरे लिए काम करता है – DiegoAlt

+1

एपीआई <11 के लिए काम नहीं करता है। कोई भी समाधान? – Apurva

0

सकता है इस की जांच करना चाहते हैं, सब कुछ आप की जरूरत मिल गया अपने एप्लिकेशन आइकन

http://developer.android.com/guide/practices/ui_guidelines/icon_design.html

अद्यतन

मैं डिफ़ॉल्ट रूप से लगता है के लिए इसे अपने लॉन्चर आइकन का उपयोग करता है ... आपका सबसे अच्छा शर्त है एक अलग छवि बनाएं ... एक्शन बार के लिए डिज़ाइन किया गया है और इसका उपयोग कर रहा है। उस चेक के लिए: http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems

+0

कि लिंक के लिए धन्यवाद, और मैं अपने आइकन से पत्र को दूर करने और पूरे एप्लिकेशन में एक ही "लोगो" आइकन का उपयोग कर खत्म हो सकता है, लेकिन मैं अभी भी यह का एक छोटा संस्करण उपयोग करना पड़ सकता है, या एक एक्शनबार पर इसका थोड़ा अलग संस्करण, और यही वह है जिसे मैं ढूंढने की कोशिश कर रहा हूं। –

+0

मेरा उत्तर – Stevanicus

48

AndroidManifest.xml में:

<application 
    android:icon="@drawable/launcher" 
    android:label="@string/app_name" 
    android:name="com..." 
    android:theme="@style/Theme">...</Application> 

styles.xml में: (android:icon देखें)

<style name="Theme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/ActionBar</item> 
</style> 
<style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:icon">@drawable/icon</item> 
</style> 
+0

* एंड्रॉइड का उपयोग कर * लोगो * लोगो भी काम करेगा। मुझे अंतर नहीं पता। –

+0

उपचार घावों को फाड़ने के लिए खेद है :-) लेकिन अंतर यह है कि यहां सुझाए गए स्टाइल चेंज सॉल्यूशन केवल एक्शन बार पर कस्टम आइकन लागू होता है, जहां मैनिफेस्ट में 'एंड्रॉइड: लोगो' को परिभाषित करने से अन्य क्षेत्रों को भी प्रभावित किया जा सकता है। – dbm

+0

@ डीबीएम, क्या आप कृपया 'अन्य क्षेत्रों' का उदाहरण दे सकते हैं? –

8

आप AppCompat, जिंजरब्रेड चलाने वाले उपकरणों पर ActionBar आइकन स्थापित करने के लिए एक ही रास्ता उपयोग कर रहे हैं (एपीआई 10) या नीचे एंड्रॉइड सेट करके है: आपके मैनिफेस्ट में प्रत्येक गतिविधि में आइकन विशेषता या प्रोग्रामेटिक रूप से ड्रायबल सेट करना।

<manifest> 
    <application> 
     ... 
     <activity android:name="com.your.ActivityName" 
      ... 
      android:icon="@drawable/ab_logo"/> 
     ... 
    </application> 
</manifest> 

अद्यतन: लेकिन चेतावनी दी हो, अगर आप एंड्रॉयड सेट है कि आवेदन आइकन ओवरराइड कर दिया जाएगा: प्रक्षेपण गतिविधि पर आइकन विशेषता। मुझे पता है कि एकमात्र काम एक स्पलैश या डमी गतिविधि है जो आपके मुख्य गतिविधि को लॉन्च करता है।

+0

मैं आपके काम का उपयोग आसपास करता हूं, लेकिन आइकन अभी भी नहीं देखा जा सकता है। –

+0

काम नहीं करता !! या तुमने कोशिश की? कृपया मुझे एक समाधान ढूंढें जो मुझे चाहिए। – Apurva

7

द आईआईटी द्वारा प्रेरित, मुझे बस इसे मैनिफेस्ट फ़ाइल में हेरफेर करके काम करने के लिए मिला लेकिन थोड़ा अलग फैशन में। एप्लिकेशन सेटिंग में आइकन सेट करें ताकि अधिकांश गतिविधियों को आइकन मिल सके। उस गतिविधि पर जहां आप लोगो दिखाना चाहते हैं, एंड्रॉइड जोड़ें: गतिविधि घोषणा में लोगो विशेषता। निम्न उदाहरण में, केवल लोगो एक्टिविटी में लोगो होना चाहिए, जबकि अन्य आइकन पर डिफ़ॉल्ट होंगे।

<application 
    android:name="com.your.app" 
    android:icon="@drawable/your_icon" 
    android:label="@string/app_name"> 

    <activity 
     android:name="com.your.app.LogoActivity" 
     android:logo="@drawable/your_logo" 
     android:label="Logo Activity" > 

    <activity 
     android:name="com.your.app.IconActivity1" 
     android:label="Icon Activity 1" > 

    <activity 
     android:name="com.your.app.IconActivity2" 
     android:label="Icon Activity 2" > 

</application> 

उम्मीद है कि यह किसी और की मदद करेगा!

+0

मैं AppCompat v7 का उपयोग कर रहा हूं, क्योंकि मैं एंड्रॉइड 2.3 का समर्थन करना चाहता हूं, लेकिन आप विधि काम नहीं करते हैं। –

3

फ़ोल्डर में लोगो

बनाने "drawable-..." उन्हें logo.png के सभी में पैदा करते हैं। फ़ोल्डरों के स्थान: android:logo="@drawable/logo"

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:logo="@drawable/logo" 
    ... 

यह है कि: [YOUR APP]\app\src\main\res

AndroidManifest.xml में पंक्ति जोड़ें।

6

इस लाइन की कोशिश

getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow); 
0

कृपया कोशिश करें, यदि उपयोग "AppCompatActivity फैली" और वर्तमान ActionBar करें।

ActionBar eksinbar=getSupportActionBar(); 
if (eksinbar != null) { 
    eksinbar.setDisplayHomeAsUpEnabled(true); 
    eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx); 
} 
संबंधित मुद्दे