डिवाइस के मुताबिक बदलने वाले आइकॉन

अडैप्टिव आइकॉन या AdaptiveIconDrawable, अलग-अलग डिवाइसों की क्षमताओं और उपयोगकर्ता के थीमिंग के हिसाब से अलग-अलग तरीके से दिख सकता है. अडैप्टिव आइकॉन का इस्तेमाल मुख्य रूप से होम स्क्रीन पर लॉन्चर करता है. हालांकि, इनका इस्तेमाल शॉर्टकट, सेटिंग ऐप्लिकेशन, शेयर करने के डायलॉग बॉक्स, और खास जानकारी वाली स्क्रीन में भी किया जा सकता है. अडैप्टिव आइकॉन का इस्तेमाल, Android के सभी फ़ॉर्म फ़ैक्टर में किया जाता है.

बिटमैप इमेज के उलट, अडैप्टिव आइकॉन को अलग-अलग कामों के हिसाब से बदला जा सकता है:

  • अलग-अलग शेप: अडैप्टिव आइकॉन, अलग-अलग डिवाइस मॉडल पर अलग-अलग शेप में दिख सकता है. उदाहरण के लिए, यह एक OEM डिवाइस पर गोल आकार दिखा सकता है और दूसरे डिवाइस पर स्क्वेयरकल (चौकोर और गोल के बीच का आकार) दिखा सकता है. हर डिवाइस ओईएम को एक मास्क उपलब्ध कराना होगा. सिस्टम इस मास्क का इस्तेमाल करके, सभी अडैप्टिव आइकॉन को एक ही शेप में रेंडर करता है.

    इस GIF में, Android के एक ही आइकॉन का ऐनिमेशन बार-बार दिखाया गया है. इसमें इस्तेमाल किए गए मास्क के हिसाब से, आइकॉन के अलग-अलग आकार दिख रहे हैं. जैसे, एक सर्कल और फिर दो अलग-अलग तरह के स्क्विकल
    पहली इमेज. अडैप्टिव आइकॉन में अलग-अलग तरह के मास्क इस्तेमाल किए जा सकते हैं. ये मास्क, एक डिवाइस से दूसरे डिवाइस पर अलग-अलग होते हैं.
  • विज़ुअल इफ़ेक्ट: अडैप्टिव आइकॉन में कई तरह के दिलचस्प विज़ुअल इफ़ेक्ट इस्तेमाल किए जा सकते हैं. ये इफ़ेक्ट तब दिखते हैं, जब उपयोगकर्ता आइकॉन को होम स्क्रीन पर रखते हैं या उसे इधर-उधर ले जाते हैं.

    इस GIF में, सर्कल के आकार वाले Android के दो सैंपल आइकॉन के उदाहरण दिखाए गए हैं. इन्हें ऐनिमेट करके, उपयोगकर्ता की प्रतिक्रिया दिखाई गई है. पहले आइकॉन में Android का लोगो दिखाया गया है. यह लोगो, सर्कल के अंदर पहले बाईं ओर, फिर दाईं ओर, फिर ऊपर और नीचे की ओर हिल रहा है. दूसरा आइकॉन बड़ा होता है और फिर छोटा हो जाता है.
    दूसरी इमेज. अडैप्टिव आइकॉन के ज़रिए दिखाए गए विज़ुअल इफ़ेक्ट के उदाहरण.
  • उपयोगकर्ता के हिसाब से थीम सेट करना: Android 13 (एपीआई लेवल 33) से, उपयोगकर्ता अपने अडैप्टिव आइकॉन के लिए थीम सेट कर सकते हैं. अगर कोई उपयोगकर्ता सिस्टम सेटिंग में जाकर, थीम वाले ऐप्लिकेशन आइकॉन की सुविधा चालू करता है और लॉन्चर इस सुविधा के साथ काम करता है, तो सिस्टम, उपयोगकर्ता के चुने गए वॉलपेपर और थीम के रंग का इस्तेमाल करता है. इससे उन ऐप्लिकेशन के आइकॉन के रंग का पता चलता है जिनके अडैप्टिव आइकॉन में monochrome लेयर होती है. Android 16 QPR 2 से, Android उन ऐप्लिकेशन के आइकॉन को अपने-आप थीम करता है जो अपने आइकॉन नहीं देते हैं.

    इस इमेज में, तीन Android डिवाइसों के उदाहरण दिखाए गए हैं. इनमें से हर डिवाइस पर, अलग-अलग रंगत वाली अलग-अलग थीम दिख रही है: पहले डिवाइस पर, गहरे रंगत वाला वॉलपेपर दिख रहा है; दूसरे डिवाइस पर, सुनहरी रंगत वाला वॉलपेपर दिख रहा है; तीसरे डिवाइस पर, हल्के नीले रंगत वाला हल्का ग्रे वॉलपेपर दिख रहा है. हर उदाहरण में, आइकॉन ने वॉलपेपर के रंग को अपनाया है और वे पूरी तरह से घुलमिल गए हैं.
    तीसरी इमेज. अडैप्टिव आइकॉन, उपयोगकर्ता के वॉलपेपर और थीम से मिलते-जुलते होते हैं.

    यहां दिए गए उदाहरणों में, होम स्क्रीन पर थीम वाला ऐप्लिकेशन आइकॉन नहीं दिखता. इसके बजाय, अडैप्टिव या स्टैंडर्ड ऐप्लिकेशन आइकॉन दिखता है:

    • अगर उपयोगकर्ता ने थीम वाले ऐप्लिकेशन आइकॉन चालू नहीं किए हैं.
    • अगर आपका ऐप्लिकेशन, मोनोक्रोमैटिक ऐप्लिकेशन आइकॉन उपलब्ध नहीं कराता है और लोगों के डिवाइस में, Android 16 QPR 2 से पहले का Android वर्शन है.
    • अगर लॉन्चर पर, थीम वाले ऐप्लिकेशन आइकॉन की सुविधा काम नहीं करती है.

अडैप्टिव आइकॉन डिज़ाइन करना

यह पक्का करने के लिए कि आपका अडैप्टिव आइकॉन अलग-अलग शेप, विज़ुअल इफ़ेक्ट, और उपयोगकर्ता थीमिंग के साथ काम करता है, डिज़ाइन को इन ज़रूरी शर्तों को पूरा करना होगा:

  • आपको आइकॉन के रंगीन वर्शन के लिए दो लेयर देनी होंगी: एक फ़ोरग्राउंड के लिए और दूसरी बैकग्राउंड के लिए. लेयर, वेक्टर या बिटमैप हो सकती हैं. हालांकि, वेक्टर को प्राथमिकता दी जाती है.

    इस इमेज में, फ़ोरग्राउंड लेयर (बाईं ओर वाली इमेज) और बैकग्राउंड लेयर (दाईं ओर वाली इमेज) का उदाहरण दिखाया गया है. फ़ोरग्राउंड में, 16 साइड वाला Android के लोगो का सैंपल आइकॉन दिखाया गया है. यह आइकॉन, 66x66 पिक्सल के सुरक्षित ज़ोन के बीच में है. सेफ़ ज़ोन, 108x108 कंटेनर के बीच में होता है. बैकग्राउंड में, सेफ़ ज़ोन और कंटेनर के लिए मेज़र किए गए डाइमेंशन एक जैसे दिखते हैं. हालांकि, इसमें सिर्फ़ नीला बैकग्राउंड दिखता है और कोई लोगो नहीं दिखता.
    चौथी इमेज. फ़ोरग्राउंड और बैकग्राउंड लेयर का इस्तेमाल करके बनाए गए अडैप्टिव आइकॉन. दिखाया गया 66x66 सेफ़ ज़ोन वह एरिया है जिसे ओईएम की ओर से तय किए गए शेप वाले मास्क से कभी काटा नहीं जाता.
    इस इमेज में, पिछली इमेज में मौजूद आइकॉन को एक गोलाकार मास्क पर ओवरले किया गया है.
    पांचवी इमेज. इस उदाहरण में दिखाया गया है कि फ़ोरग्राउंड और बैकग्राउंड लेयर, एक साथ कैसी दिखती हैं. साथ ही, इन पर गोलाकार मास्क लगाया गया है.
  • अगर आपको ऐप्लिकेशन के आइकॉन के लिए, उपयोगकर्ता की थीम वाली सुविधा को सपोर्ट करना है, तो आइकॉन के मोनोक्रोम वर्शन के लिए एक लेयर उपलब्ध कराएं.

    एक इमेज में, मोनोक्रोमैटिक आइकॉन लेयर (बाईं ओर वाली इमेज) और रंग के पूर्वावलोकन (दाईं ओर वाली इमेज) का उदाहरण दिखाया गया है. मोनोक्रोमैटिक लेयर में, 16 साइड वाला Android लोगो दिखाया गया है. यह लोगो, 66x66 के सुरक्षित ज़ोन के बीच में है. सेफ़ ज़ोन, 108x108 कंटेनर के बीच में होता है. रंग की झलक दिखाने वाली इमेज में, इस लेयर को अलग-अलग रंग की यूज़र थीम (नारंगी, गुलाबी, पीला, और हरा) पर लागू करने के बाद दिखाया गया है.
    छठी इमेज. एक रंग वाली आइकॉन लेयर (बाएं) और रंग की झलक के उदाहरण (दाएं).
  • सभी लेयर का साइज़ 108x108 dp पर सेट करें.

  • साफ़ किनारों वाले आइकॉन का इस्तेमाल करें. लेयर में, आइकॉन की आउटलाइन के आस-पास मास्क या बैकग्राउंड शैडो नहीं होने चाहिए.

  • कम से कम 48x48 डीपी वाला लोगो इस्तेमाल करें. यह 66x66 डीपी से ज़्यादा नहीं होना चाहिए, क्योंकि आइकॉन का अंदरूनी 66x66 डीपी, मास्क किए गए व्यूपोर्ट में दिखता है.

लेयर की चारों ओर 18 डीपी का बाहरी हिस्सा, मास्किंग के लिए रिज़र्व होता है. साथ ही, इसका इस्तेमाल पैरलैक्स या पल्सिंग जैसे विज़ुअल इफ़ेक्ट बनाने के लिए किया जाता है.

Android Studio का इस्तेमाल करके अडैप्टिव आइकॉन बनाने का तरीका जानने के लिए, हमारा Android ऐप्लिकेशन आइकॉन Figma टेंप्लेट देखें. इसके अलावा, लॉन्चर आइकॉन बनाने के लिए Android Studio का दस्तावेज़ भी देखा जा सकता है. इसके अलावा, ऐडैप्टिव आइकॉन डिज़ाइन करना ब्लॉग पोस्ट भी पढ़ें .

अपने ऐप्लिकेशन में अडैप्टिव आइकॉन जोड़ना

अनुकूलनशील आइकॉन को भी नॉन-अनुकूलनशील आइकॉन की तरह ही, ऐप्लिकेशन मेनिफ़ेस्ट में android:icon एट्रिब्यूट का इस्तेमाल करके तय किया जाता है.

android:roundIcon एक ऐसा एट्रिब्यूट है जिसकी वैल्यू देना ज़रूरी नहीं है. इसका इस्तेमाल उन लॉन्चर के लिए किया जाता है जो गोल आइकॉन वाले ऐप्लिकेशन को दिखाते हैं. अगर आपके ऐप्लिकेशन के आइकॉन में गोल बैकग्राउंड को डिज़ाइन के मुख्य हिस्से के तौर पर शामिल किया गया है, तो यह एट्रिब्यूट आपके लिए काम का हो सकता है. ऐसे लॉन्चर को android:roundIcon पर गोलाकार मास्क लगाकर, ऐप्लिकेशन के आइकॉन जनरेट करने होते हैं. इस गारंटी से, आपको अपने ऐप्लिकेशन के आइकॉन को ऑप्टिमाइज़ करने में मदद मिल सकती है. उदाहरण के लिए, लोगो को थोड़ा बड़ा करके और यह पक्का करके कि काटने पर, गोलाकार बैकग्राउंड पूरी तरह से दिखे.

यहां दिए गए कोड स्निपेट में, इन दोनों एट्रिब्यूट के बारे में बताया गया है. हालांकि, ज़्यादातर ऐप्लिकेशन सिर्फ़ android:icon की जानकारी देते हैं:

<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:roundIcon="@mipmap/ic_launcher_round"
    ...>
</application>

इसके बाद, अडैप्टिव आइकॉन को res/mipmap-anydpi-v26/ic_launcher.xml में सेव करें. अपने आइकॉन के लिए फ़ोरग्राउंड, बैकग्राउंड, और मोनोक्रोमैटिक लेयर के संसाधनों को तय करने के लिए, <adaptive-icon> एलिमेंट का इस्तेमाल करें. <foreground>, <background>, और <monochrome> इनर एलिमेंट, वेक्टर और बिटमैप, दोनों तरह की इमेज के साथ काम करते हैं.

यहां दिए गए उदाहरण में, <adaptive-icon> के अंदर <foreground>, <background>, और <monochrome> एलिमेंट को तय करने का तरीका बताया गया है:

<?xml version="1.0" encoding="utf-8"?>
...
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />
    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
...

फ़ोरग्राउंड और मोनोक्रोम लेयर, एक ही ड्रॉएबल का इस्तेमाल कर रही हैं. हालांकि, अगर ज़रूरत हो, तो हर लेयर के लिए अलग-अलग ड्रॉएबल बनाए जा सकते हैं.

ड्रॉएबल को एलिमेंट के तौर पर भी तय किया जा सकता है. इसके लिए, उन्हें <foreground>, <background>, और <monochrome> एलिमेंट में इनलाइन करें. नीचे दिए गए स्निपेट में, फ़ोरग्राउंड ड्रॉएबल का इस्तेमाल करके ऐसा करने का एक उदाहरण दिखाया गया है.

<?xml version="1.0" encoding="utf-8"?>
...
<foreground>
   <inset
       android:insetBottom="18dp"
       android:insetLeft="18dp"
       android:insetRight="18dp"
       android:insetTop="18dp">
       <shape android:shape="oval">
           <solid android:color="#0000FF" />
       </shape>
   </inset>
</foreground>
...

अगर आपको अपने शॉर्टकट पर वही मास्क और विज़ुअल इफ़ेक्ट लागू करना है जो अडैप्टिव आइकॉन पर लागू होता है, तो इनमें से कोई एक तरीका अपनाएं:

  • स्टैटिक शॉर्टकट के लिए, <adaptive-icon> एलिमेंट का इस्तेमाल करें.
  • डाइनैमिक शॉर्टकट बनाने के लिए, createWithAdaptiveBitmap() तरीके का इस्तेमाल करें.

अडैप्टिव आइकॉन लागू करने के बारे में ज़्यादा जानने के लिए, अडैप्टिव आइकॉन लागू करना लेख पढ़ें. शॉर्टकट के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन के शॉर्टकट की खास जानकारी देखें.

अन्य संसाधन

अनुकूलित आइकॉन को डिज़ाइन और लागू करने के बारे में ज़्यादा जानकारी के लिए, यहां दिए गए संसाधन देखें.