एंड्रॉइड: एक्शनबेर "होम" आइकन को ऐप आइकन के अलावा कुछ और कैसे बदलें?


114

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

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

जवाबों:


218

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


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

@ जो, एपीआई के लिए कोई समाधान <11
AppCompat

49

AndroidManifest.xml में:

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

Style.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>

android: लोगो भी काम करेगा। मैं अंतर नहीं जानता।
बजे AlikElzin-kilaka

घाव भरने वाले घावों के लिए क्षमा करें :-) लेकिन अंतर यह है कि यहां सुझाए गए स्टाइल चेंज सॉल्यूशन कस्टम आइकन को केवल एक्शन बार पर लागू करता है, जहां android:logoप्रकट में परिभाषित करने के साथ-साथ अन्य क्षेत्रों को भी प्रभावित कर सकता है।
dbm

@dbm, क्या आप 'अन्य क्षेत्रों' का उदाहरण दे सकते हैं?
एलिकएल्ज़िन-किलाका

2
हाँ, मुझे इतनी उत्सुकता हुई कि मैंने इस पर गूगल करना शुरू कर दिया और यह वही है जो Android डेवलपर साइट कहती है: developer.android.com/guide/topics/manifest/… । यह मेरे लिए स्पष्ट नहीं है कि यह andorid:iconविशेषता से कैसे भिन्न है , हालांकि: developer.android.com/guide/topics/manifest/…
dbm

2
कार्यवाही बार डॉक भी आप जोड़ सकते हैं का कहना है कि android:iconकरने के लिए <activity>, तत्व ताकि आप आसानी से विभिन्न गतिविधियों के लिए इसे बदल सकता है। मैंने कोशिश की है और यह महान काम किया। किसी कस्टम विषय के साथ खिलवाड़ करने या सभी गतिविधियों को प्रभावित करने की चिंता करने की आवश्यकता नहीं है।
जेसन


8

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

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

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


काम नहीं करता है !! या तुमने कोशिश की? कृपया मुझे इसका एक हल ढूंढना चाहिए।
अपूर्वा

8

TheIT से प्रेरित होकर, मैंने इसे केवल मेनिफ़ेस्ट फ़ाइल में हेरफेर करने के लिए काम किया, लेकिन थोड़े अलग तरीके से। आइकन को एप्लिकेशन सेटिंग में सेट करें ताकि अधिकांश गतिविधियों को आइकन मिल जाए। उस गतिविधि पर जहां आप लोगो दिखाना चाहते हैं, ऐक्टिविटी डिक्लेरेशन में android: logo एट्रिब्यूट जोड़ें। निम्नलिखित उदाहरण में, केवल LogoActivity में लोगो होना चाहिए, जबकि अन्य आइकन के लिए डिफ़ॉल्ट होंगे।

<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>

आशा है कि यह किसी और की मदद करता है!


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

6

कृपया कोशिश करें, यदि "AppCompatActivity का विस्तार" और वर्तमान एक्शनबार का उपयोग करें।

 ActionBar eksinbar=getSupportActionBar();
if (eksinbar != null) {
    eksinbar.setDisplayHomeAsUpEnabled(true);
    eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx);
}

3

लोगो बना रहा है

drawable-...उन सभी में " " फ़ोल्डर बनाएँ logo.png। फ़ोल्डर्स का स्थान: [YOUR APP]\app\src\main\res

AndroidManifest.xml में लाइन जोड़ें: android:logo="@drawable/logo"

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

बस।


0

हो सकता है कि यह जाँच करें, आपको अपने ऐप आइकन के लिए सब कुछ चाहिए

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

अपडेट करें

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


उस लिंक के लिए धन्यवाद, और मैं अपने आइकन से अक्षरों को हटा सकता हूं और पूरे ऐप में उसी "लोगो" आइकन का उपयोग कर सकता हूं, लेकिन मुझे अभी भी इसके छोटे संस्करण, या इसके थोड़े अलग संस्करण का उपयोग करने की आवश्यकता हो सकती है ActionBar, और यही मैं पता लगाने की कोशिश कर रहा हूं।
फिल रिंगसुथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.