सामग्री आप डिजाइन करते हैं

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

  • गतिशील रंग
  • गति
  • विजेट

गतिशील रंग

डायनामिक रंग आपके द्वारा डिज़ाइन किए गए मटेरियल का केंद्रबिंदु है और एंड्रॉइड की बहु-वर्षीय रणनीति का एक महत्वपूर्ण हिस्सा है जो अपने उपयोगकर्ताओं के लिए सरल और गहरा अनुकूलन लाता है जैसा कि कोई अन्य डिवाइस नहीं करता है। आपके द्वारा प्रदान की जाने वाली सामग्री:

  • उपयोगकर्ताओं और डेवलपर्स के लिए किसी भी एंड्रॉइड डिवाइस में वैयक्तिकरण की एक सुसंगत, समृद्ध कहानी उपलब्ध है।

  • एंड्रॉइड ओईएम को सिस्टम यूआई और प्रथम-पक्ष ऐप्स को इस तरह से नवीनीकृत करने का अवसर मिलता है जो उनके हार्डवेयर और ब्रांड रंग, मेक और रूप के अनुरूप हो।

गतिशील रंग का लाभ उठाने के लिए, उपयोगकर्ताओं को अपने सॉफ़्टवेयर की पेशकश के एक महत्वपूर्ण भाग के रूप में Android 12 मटेरियल यू रंग निष्कर्षण कहानी का उपयोग करें। डिवाइस पर, एओएसपी में मौजूद रंग निष्कर्षण तर्क का उपयोग करें, विशेष रूप से वह तर्क जो एकल वॉलपेपर या थीम स्रोत रंग लेता है और इसे 65 रंग एपीआई के माध्यम से आउटपुट करता है। गतिशील रंग आवश्यकताओं के लिए, गतिशील रंग का उपयोग करना देखें।

पूर्ण गतिशील रंग प्रवाह में चार चरण शामिल हैं, जैसा कि नीचे दिखाया गया है:

सामग्री आप रंग प्रवाह

चित्र 1. सामग्री आप गतिशील रंग प्रवाह

  1. उपयोगकर्ता OEM पिकर के माध्यम से वॉलपेपर या थीम बदलता है।

  2. उपयोगकर्ता निम्न में से एक का चयन करता है:

    • डिवाइस थीम. चयनित होने पर, एंड्रॉइड स्वचालित रूप से एकल स्रोत रंग चुनता है जो आवश्यकताओं को पूरा करता है।

    • नया वॉलपेपर + थीम। चयनित होने पर, AOSP लॉजिक स्वचालित रूप से चयनित वॉलपेपर से एकल स्रोत रंग चुनता है।

  3. AOSP तर्क के अनुसार, AOSP एकल स्रोत रंग को 5 टोनल पैलेटों में विस्तारित करता है, जिनमें से प्रत्येक 13 टोनल रंग वेरिएंट के साथ होता है, जो फिर 65 रंग विशेषताओं को पॉप्युलेट करता है।

  4. ऐप यूआई 65 रंग विशेषताओं का उपयोग इस तरह से करता है जो एंड्रॉइड ऐप इकोसिस्टम में सुसंगत है। आपको डिवाइस सिस्टम यूआई और OEM-विशिष्ट ऐप्स के लिए समान रंग पैलेट का उपयोग करने के लिए प्रोत्साहित किया जाता है।

एंड्रॉइड 12 पैच

वॉलपेपर रंग निष्कर्षण के लिए एंड-टू-एंड तर्क प्राप्त करने के लिए और डिवाइस को 65-रंग एपीआई को पारिस्थितिकी तंत्र के अनुरूप भरने में सक्षम करने के लिए, अपने एंड्रॉइड 12 कार्यान्वयन में निम्नलिखित पैच शामिल करें:

ThemePicker पर कस्टम रंग निर्दिष्ट करना

यदि आप AOSP ThemePicker ऐप का उपयोग कर रहे हैं, तो निम्नलिखित दोनों शर्तें पूरी होने पर वॉलपेपरपिकर ऐप रंग अनुभाग दिखाता है:

  • frameworks/base/packages/SystemUI/res/values/flags.xml पर flag_monet true है।
  • पैकेज नाम के साथ एक सिस्टम स्टब एपीके को packages/apps/ThemePicker/res/values/override.xml फ़ाइल में themes_stub_package में परिभाषित किया गया है।

स्टब एपीके प्रारूप

इस APK का एक नमूना संस्करण packages/apps/ThemePicker/themes में पाया जा सकता है।

इस एपीके में केवल संसाधन होने चाहिए, जिसमें उपलब्ध मूल रंगों और उनके नामों का विवरण हो।

स्टब में निम्नलिखित प्रारूप के साथ res/xml के अंतर्गत एक XML फ़ाइल होनी चाहिए:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="color_bundles">
        <item>color1</item>
        <item>color2</item>
        <item>color3</item>
        <item>color4</item>
    </array>

    <string name="bundle_name_color1">Blue</string>
    <string name="bundle_name_color2">Red</string>
    <string name="bundle_name_color3">Yellow</string>
    <string name="bundle_name_color4">Green</string>

</resources>

इस फ़ाइल में, color_bundles के भीतर प्रत्येक item एक अलग नाम होता है, जब तक कि नीचे दी गई स्ट्रिंग को bundle_name_ item नाम दिया गया हो।

प्रत्येक रंग के लिए एक bundle_name_ item स्ट्रिंग होनी चाहिए, जिसमें प्रत्येक रंग के लिए एक वर्णनात्मक नाम होना चाहिए। इनका अनुवाद संबंधित अनुवादित स्ट्रिंग्स को res/values- language code निर्देशिकाओं में जोड़कर किया जा सकता है।

वास्तविक रंग मान या तो एक ही XML पर या निम्न प्रारूप के साथ एक अलग संसाधन XML फ़ाइल पर हो सकते हैं:

<resources>
    <color name="color_primary_color1">#0000FF</color>
    <color name="color_secondary_color1">#0000FF</color>

    <color name="color_primary_color2">#ff0000</color>
    <color name="color_secondary_color2">#ff0000</color>

    <color name="color_primary_color3">#ffff00</color>
    <color name="color_secondary_color3">#ffff00</color>

    <color name="color_primary_color4">#00ff00</color>
    <color name="color_secondary_color4">#00ff00</color>
</resources>

रंग बंडल सरणी में प्रत्येक आइटम के लिए, एक color_primary_ item और एक color_secondary_ item प्रविष्टि होनी चाहिए (और दोनों रंग एक ही रंग के होने चाहिए)। इन color प्रविष्टियों के मान मूल रंग अनुभाग में दिखाए जाने वाले प्रत्येक रंग के लिए वास्तविक रंग कोड हैं।

चरण 1: उपयोगकर्ता थीम अनुभव बनाएं

थीम पिकर वह जगह है जहां उपयोगकर्ता नई मटेरियल यू वैयक्तिकरण क्षमताओं के साथ जुड़ते हैं और संभावित रूप से रंग विकल्पों या प्रीसेट के बीच चयन करते हैं। चूंकि यह आपके उत्पाद और उपयोगकर्ता जनसांख्यिकीय के अनुरूप है, आप थीम पिकर या वॉलपेपर पिकर के उपयोग के माध्यम से उपयोगकर्ताओं को एक समृद्ध वैयक्तिकरण और रंग अनुभव प्रदान कर सकते हैं।

  • वॉलपेपर पिकर का उपयोग करते समय, वॉलपेपर रंग निष्कर्षण डिफ़ॉल्ट रूप से चालू होता है। हालाँकि, आप उपयोगकर्ता को अधिक विकल्प प्रदान करने के लिए पिकर में कुछ अनुकूलन कर सकते हैं।

चरण 2: वॉलपेपर रंग को स्रोत रंग में निकालें

वॉलपेपर रंग निष्कर्षण को सक्षम करने के लिए, ऊपर सूचीबद्ध एंड्रॉइड 12 पैच को चुनें (यह कार्यक्षमता भविष्य के एओएसपी रिलीज में डिफ़ॉल्ट रूप से सक्षम होगी)। AOSP तर्क जो वॉलपेपर निष्कर्षण को ट्रिगर करता frameworks/base/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java पर, ThemeOverlayController#mOnColorsChangedListener पर, WallpaperManager#onWallpaperColorsChanged के माध्यम से शुरू होता है। हम सतत विकास अनुभव सुनिश्चित करने के लिए असंशोधित एओएसपी तर्क का उपयोग करने की सलाह देते हैं।

डिफ़ॉल्ट रूप से, तर्क उच्चतम आवृत्ति रंग चुनता है जो उपयोग के लिए उपयुक्त है। एल्गोरिदम द्वारा लौटाए गए अन्य स्रोत रंगों का लाभ उठाने और उन रंगों को थीम पिकर में उपयोगकर्ताओं के सामने प्रस्तुत करने के लिए, ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) उपयोग करें।

उपयोग के लिए उपयुक्त होने के लिए, एक स्रोत रंग (चाहे वॉलपेपर से निकाला गया हो या उपयोगकर्ता द्वारा चुने गए प्रीसेट से) का न्यूनतम CAM16 क्रोमा मान 5 होना चाहिए; यह सुनिश्चित करता है कि जब स्रोत रंग को एक रंग से 65 टोनल रंगों में परिवर्तित किया जाता है तो वह सूक्ष्म गहरे टोन से प्रभावित नहीं होता है और उपयोगकर्ता की पसंद का प्रतिनिधि बना रहता है। CAM16 में रंगों को पढ़ने और संशोधित करने के लिए, Cam#fromInt या Cam#getInt उपयोग करें।

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

  • frameworks/base/packages/SystemUI/res/values/flags.xml पर flag_monet अक्षम करके डिफ़ॉल्ट सामग्री पैलेट का उपयोग करें।
  • सुनिश्चित करें कि उपयोगकर्ता अभी भी प्रीसेट थीम पिकर का उपयोग करके अपने ओएस को वैयक्तिकृत कर सकते हैं।

चरण 3: स्रोत रंग को रंगीन एपीआई में विस्तारित करें

पिछले चरण से प्राप्त एकल स्रोत रंग का उपयोग करके, एंड्रॉइड 5 अद्वितीय टोनल पैलेट (उच्चारण 1-3, तटस्थ 1-2) उत्पन्न करता है, प्रत्येक पैलेट में 13 रंग शामिल होते हैं, और प्रत्येक रंग अलग-अलग चमक मान (0 से 1000) सहित होता है। कुल 65 रंग. एंड्रॉइड 12 पैच में प्रदान किया गया तर्क इस रंग विस्तार को सही ढंग से लागू करता है; नीचे दिए गए विवरण कार्यान्वयन का वर्णन करते हैं।

डेवलपर स्थिरता के लिए, 5 टोनल पैलेट (एक्सेंट1, एक्सेंट2, एक्सेंट3, न्यूट्रल1, न्यूट्रल2) और उनके संबंधित 13 रंग नीचे लिखे अनुसार CAM16 क्रोमा और ह्यू मानों में संबंधित परिवर्तनों के साथ एकल स्रोत रंग पर आधारित होने चाहिए:

  • system_accent1

    • क्रोमा: 0 , 10 , 50 और 100 पर समाप्त होने वाले रंगों के लिए "40" का उपयोग करें, अन्यथा "48" का उपयोग करें
    • रंग: स्रोत के समान
  • system_accent2

    • क्रोमा: "16" का प्रयोग करें
    • रंग: स्रोत के समान
  • system_accent3

    • क्रोमा: "32" का प्रयोग करें
    • रंग: 60 डिग्री सकारात्मक घुमाएँ
  • system_neutral1

    • क्रोमा: "4" का प्रयोग करें
    • रंग: स्रोत के समान
  • system_neutral2

    • क्रोमा: "8" का प्रयोग करें
    • रंग: स्रोत के समान

सीटीएस में ल्यूमिनेंस और ह्यू एपीआई कॉल को मान्य करने के लिए परीक्षण शामिल हैं। चलाने के लिए, atest SystemPalette उपयोग करें।

चरण 4: ऐप्स और सिस्टम यूआई में गतिशील रंगों का उपयोग करें

किसी डिवाइस पर गतिशील रंग सेट होने के बाद, ऐप्स रंगों का उपयोग करने के लिए सामग्री दिशानिर्देशों का पालन करते हैं। तीसरे पक्ष के ऐप्स को अपनाने के लिए सामग्री दिशानिर्देश 26 अक्टूबर, 2021 तक material.io पर जारी होने वाले हैं। सिस्टम यूआई और प्रथम-पक्ष ऐप्स के लिए, हम पूरे उपयोगकर्ता अनुभव में गतिशील रंगों को इस तरह से एकीकृत करने की दृढ़ता से अनुशंसा करते हैं जो आपके हार्डवेयर और ब्रांड के साथ फिट हो और आपको अपने उपकरणों को अलग करने में मदद करे।

सामान्य गतिशील रंग मार्गदर्शन के लिए, निम्नलिखित देखें:

  • ऐप्स और सिस्टम यूआई में अग्रभूमि तत्वों के लिए उच्चारण रंगों का उपयोग करें:

    @android:color/system_accent1_0 … 1000 // most-used foreground color group
    @android:color/system_accent2_0 … 1000 // alternate accent, used for surfaces
    @android:color/system_accent3_0 … 1000 // playful, analogous color
    
  • ऐप्स और सिस्टम यूआई में पृष्ठभूमि तत्वों के लिए तटस्थ रंगों का उपयोग करें:

    @android:color/system_neutral1_0 … 1000 // most-used background color group
    @android:color/system_neutral2_0 … 1000 // used for higher-elevation surfaces
    

सामग्री आप रंगों को कैसे मैप करते हैं और SysUI में एपीआई का उपयोग कैसे किया जाता है, इस बारे में अधिक जानकारी के लिए, अतिरिक्त संसाधन देखें।

चरण 5: अपने AOSP वॉलपेपरपिकर कार्यान्वयन में गतिशील रंग विकल्प जोड़ें

Android 13 और उच्चतर के लिए निर्माण करें

एंड्रॉइड 13 से शुरू होकर, android.theme.customization.accent_color हटा दिया गया है। विभिन्न रंग वेरिएंट का समर्थन करने के लिए एक नई विशेषता android.theme.customization.theme_style जोड़ी गई है। वर्तमान में हमारे पास कोडबेस में चार प्रकार हैं:

TONAL_SPOT = Default Material You theme since Android S.
VIBRANT = Theme where accent 2 and 3 are analogous to accent 1.
EXPRESSIVE = Highly chromatic theme.
SPRITZ = Desaturated theme, almost grayscale.

इन्हें Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES पर भेजा जाता है, जैसा कि नीचे JSON में दिखाया गया है:

{
    "android.theme.customization.system_palette":"B1611C",
    "android.theme.customization.theme_style":"EXPRESSIVE"
}

Android 12 और उससे पहले के संस्करण के लिए बनाएं

कस्टम थीम पिकर का उपयोग करते समय, डिवाइस को निम्नलिखित प्रारूप में एक JSON फ़ाइल प्रदान करके Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES पर एक वैध स्रोत रंग भेजना होगा (जहां 746BC1 एक उदाहरण वैध स्रोत रंग है):

{
      "android.theme.customization.system_palette":"746BC1",
      "android.theme.customization.accent_color":"746BC1"
}

ऐसा करने से वॉलपेपर रंग निकालना बंद हो जाता है (चरण 2) और सीधे दिए गए स्रोत रंग को 65 रंग विशेषताओं (चरण 3) में विस्तारित कर देता है।

चरण 6: टिकट दाखिल करें

सिस्टम एकीकरण के अलावा, आपको एक टिकट दाखिल करना होगा और हमें अपना ब्रांड नाम ( Build.MANUFACTURER ) बताना होगा। चूँकि अधिकांश तृतीय-पक्ष ऐप्स गतिशील रंग दिखाने के लिए एंड्रॉइड के लिए सामग्री घटकों का उपयोग कर रहे हैं, हम यह बताने के लिए एक हार्डकोडेड अनुमति सूची का उपयोग कर रहे हैं कि किन उपकरणों ने गतिशील रंग टोनल पैलेट सुविधा को एकीकृत किया है।

गति

द्रव गति उपकरणों को आधुनिक और प्रीमियम महसूस कराती है। डेवलपर के विश्वास और खुशी को बनाने और बनाए रखने के लिए, ओवरस्क्रॉल और रिपल द्रव गति के दो प्रमुख भाग हैं जिन्हें सुसंगत दिखने और महसूस करने की आवश्यकता है।

अपने OS में ओवरस्क्रॉल का उपयोग करना

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

सामग्री आप ओवरस्क्रॉल करें

चित्र 2. एंड्रॉइड 12 ओवरस्क्रॉल प्रभाव, जैसा कि सेटिंग्स में दिखाया गया है

डेवलपर स्थिरता के लिए, सुनिश्चित करें कि आपके डिवाइस पर समग्र ओवरस्क्रॉल प्रभाव निम्नलिखित के समान है:

  • उन उपकरणों पर जो ActivityManager.isHighEndGfx() के लिए सत्य लौटाते हैं, ओवरस्क्रॉल प्रभाव स्क्रीन का गैर-रेखीय खिंचाव है (जैसा कि ऊपर दिखाया गया है)।

  • कम-प्रदर्शन वाले उपकरणों पर, खिंचाव प्रभाव को एक रैखिक खिंचाव (सिस्टम पर भार कम करने के लिए) तक सरल बनाया जाता है।

प्रथम-पक्ष ऐप्स में ओवरस्क्रॉल का उपयोग करना

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

  • स्ट्रेच ओवरस्क्रॉल का समर्थन करने के लिए, नवीनतम लाइब्रेरी में अपग्रेड करें:

    • androidx.recyclerview:recyclerview:1.3.0-alpha01 RecyclerView के लिए
    • NestedScrollView और EdgeEffectCompat के लिए androidx.core:core:1.7.0-alpha01
    • ViewPager के लिए androidx.viewpager:viewpager:1.1-alpha01
  • EdgeEffect का उपयोग करने वाले कस्टम लेआउट के लिए, निम्नलिखित UX परिवर्तनों पर विचार करें:

    • स्ट्रेच ओवरस्क्रॉल के साथ, उपयोगकर्ताओं को लेआउट के स्ट्रेच होने के दौरान उसकी सामग्री के साथ इंटरैक्ट नहीं करना चाहिए। उपयोगकर्ताओं को केवल खिंचाव में ही हेरफेर करना चाहिए और उदाहरण के लिए, सामग्री में एक बटन दबाने में सक्षम नहीं होना चाहिए।

    • जब उपयोगकर्ता EdgeEffect एनीमेशन के दौरान सामग्री को छूते हैं, तो उन्हें एनीमेशन को पकड़ना चाहिए और खिंचाव में हेरफेर करने की अनुमति दी जानी चाहिए। वर्तमान पुल मान EdgeEffectCompat.getDistance() से उपलब्ध है।

    • पुल मान में हेरफेर करने और उपभोग की गई राशि वापस करने के लिए, onPullDistance() का उपयोग करें। यह डेवलपर्स को स्ट्रेचिंग से स्क्रॉलिंग तक आसानी से संक्रमण करने की अनुमति देता है क्योंकि उंगली प्रारंभिक स्थिति से सामग्री को हटा देती है।

    • नेस्टेड स्क्रॉलिंग के साथ काम करते समय, यदि सामग्री खिंची हुई है, तो स्ट्रेच को नेस्टेड सामग्री से पहले स्पर्श गति का उपभोग करना चाहिए, अन्यथा जब उंगली खिंचाव जारी करने के बजाय दिशा बदलती है तो नेस्टिंग स्क्रॉल कर सकती है।

ओवरस्क्रॉल पर विवरण के लिए, स्क्रॉल जेस्चर को एनिमेट करें देखें।

अपने ओएस में रिपल (टच फीडबैक) का उपयोग करना

एंड्रॉइड 12 में टैप डाउन पर उपयोगकर्ताओं को फीडबैक प्रदान करने के लिए एक नरम, अधिक सूक्ष्म स्पर्श तरंग शामिल है।

मटेरियल यू रिपल

चित्र 3. एंड्रॉइड 12 रिपल प्रभाव, एक नरम भरण एनीमेशन के साथ

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

विजेट

विजेट एंड्रॉइड डिवाइस के प्रमुख घटक हैं। एंड्रॉइड 12 में नए एपीआई और एपीआई क्षमताएं शामिल हैं जिनका सभी ओईएम को समर्थन करना चाहिए।

अतिरिक्त संसाधन

SysUI रंग का उपयोग

(एक्सेंट1 = ए1, एक्सेंट2 = ए2, एक्सेंट3 = ए3, न्यूट्रल1 = एन1, न्यूट्रल2 = एन2)

आपके द्वारा उपयोग की जाने वाली सामग्री

चित्र 4. सिस्टम यूआई में गतिशील रंग का उपयोग

सामग्री लाइब्रेरी रंग विशेषता अद्यतन

मटेरियल विशिष्ट दृश्यों को रंग प्रदान करने के लिए उपयोग की जाने वाली रंग भूमिकाएँ बनाकर आगामी रिलीज़ में अपनी थीम विशेषताओं को अपडेट करेगा।

रंग भूमिका एंड्रॉइड थीम विशेषता लाइट थीम
गतिशील रंग
डार्क थीम
गतिशील रंग
प्राथमिक रंगप्राथमिक system_accent1_600 system_accent1_200
प्राथमिक पर कलरऑनप्राइमरी system_accent1_0 system_accent1_800
माध्यमिक रंगमाध्यमिक system_accent2_600 system_accent2_200
माध्यमिक पर कलरऑनसेकेंडरी system_accent2_0 system_accent2_800
गलती रंगत्रुटि एन/ए (लाल_600) एन/ए (लाल_200)
त्रुटि पर रंगऑनत्रुटि एन/ए (सफ़ेद) एन/ए (लाल_900)
पृष्ठभूमि एंड्रॉइड: कलरबैकग्राउंड system_neutral1_10 सिस्टम_न्यूट्रल1_900
पृष्ठभूमि पर कलरऑनबैकग्राउंड सिस्टम_न्यूट्रल1_900 सिस्टम_न्यूट्रल1_100
सतह रंग सतह system_neutral1_10 सिस्टम_न्यूट्रल1_900
सतह पर रंगऑनसतह सिस्टम_न्यूट्रल1_900 सिस्टम_न्यूट्रल1_100

सामग्री निम्नलिखित संकेतकों के साथ अपनी स्थिति विशेषताओं को अद्यतन करेगी:

रंग भूमिका एंड्रॉइड थीम विशेषता लाइट थीम
गतिशील रंग
डार्क थीम
गतिशील रंग
प्राथमिक राज्य सामग्री रंगप्राथमिकराज्यसामग्री system_accent1_700 system_accent1_200
प्राथमिक राज्य परत कलरप्राइमरीस्टेटलेयर system_accent1_600 system_accent1_300
माध्यमिक राज्य सामग्री colorSecondaryStateContent system_accent2_700 system_accent2_200
द्वितीयक राज्य परत कलरसेकेंडरीस्टेटलेयर system_accent2_600 system_accent2_300
प्राथमिक राज्य सामग्री पर कलरऑनप्राइमरीस्टेटकंटेंट system_accent1_0 system_accent1_800
प्राथमिक राज्य परत पर कलरऑनप्राइमरीस्टेटलेयर system_accent1_900 system_accent1_800
माध्यमिक राज्य सामग्री पर colorOnSecondaryStateContent system_accent2_0 system_accent2_800
सेकेंडरी स्टेट लेयर पर कलरऑनसेकेंडरीस्टेटलेयर system_accent2_900 system_accent2_800
प्राथमिक कंटेनर राज्य सामग्री पर colorOnPrimaryContainerStateContent system_accent1_900 system_accent1_900
प्राथमिक कंटेनर राज्य परत पर कलरऑनप्राइमरीकंटेनरस्टेटलेयर system_accent1_900 system_accent1_900
माध्यमिक कंटेनर राज्य सामग्री पर colorOnSecondaryContainerStateContent system_accent2_900 system_accent2_900
सेकेंडरी कंटेनर स्टेट लेयर पर colorOnSecondaryContainerStateLayer system_accent2_900 system_accent2_900
तृतीयक कंटेनर राज्य सामग्री पर colorOnTertiaryContainerStateContent system_accent3_900 system_accent3_900
तृतीयक कंटेनर राज्य परत पर colorOnTertiaryContainerStateLayer system_accent3_900 system_accent3_900
सतही स्थिति सामग्री पर colorOnSurfaceStateContent सिस्टम_न्यूट्रल1_900 सिस्टम_न्यूट्रल1_100
सतह राज्य परत पर कलरऑनसरफेसस्टेटलेयर सिस्टम_न्यूट्रल1_900 सिस्टम_न्यूट्रल1_100
सरफेस वेरिएंट स्टेट कंटेंट पर colorOnSurfaceVariantStateContent system_neutral2_700 system_neutral2_200
सरफेस वैरिएंट स्टेट लेयर पर colorOnSurfaceVariantStateLayer system_neutral2_700 system_neutral2_200
त्रुटि स्थिति सामग्री colorErrorStateContent लाल800 लाल200

पूछे जाने वाले प्रश्न

रंग निकालना

एक बार जब कोई उपयोगकर्ता वॉलपेपर बदलता है, तो क्या रंग स्वचालित रूप से निकाला जाता है या इसे कहीं से ट्रिगर करने की आवश्यकता होती है?

एंड्रॉइड 12 पैच के साथ, वॉलपेपर रंग निष्कर्षण डिफ़ॉल्ट रूप से चालू है।

ThemeOverlayController.java ThemeOverlayController#mOnColorsChangedListener और WallpaperManager#onWallpaperColorsChanged के साथ तर्क को ट्रिगर करता है।

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

जब उपयोगकर्ता वॉलपेपर सेट करता है या स्क्रीन पावर चक्र के बाद ( WallpaperEngine#notifyColorsChanged के जवाब में) रंग निष्कर्षण शुरू हो जाता है। अंतिम WallpaperColors इवेंट (लाइव वॉलपेपर से) उपयोगकर्ता द्वारा स्क्रीन बंद करने और इसे फिर से चालू करने के बाद लागू किया जाता है।

थीम/वॉलपेपर पिकर

मैं थीम पिकर को उपयोगकर्ताओं के लिए उच्चतम आवृत्ति रंग की तुलना में एकाधिक स्रोत रंग दिखाने में कैसे सक्षम करूं? क्या निष्कर्षण तर्क से उन रंगों को प्राप्त करने का कोई तरीका है?

हाँ। अपने थीम पिकर में, आप ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) उपयोग कर सकते हैं।

पिक्सेल नामों पर थीम वाले आइकन के रूप में एक सुविधा है। क्या यह आपके द्वारा साझा किए गए तीन पैच में शामिल है? OEM इसे कैसे लागू कर सकते हैं?

नहीं, थीम वाले आइकन बीटा में हैं और एंड्रॉइड 12 में उपलब्ध नहीं हैं।

क्या रंग निकालने और चयन सुविधाओं को सक्षम करके Google वॉलपेपर ऐप का उपयोग करने का कोई तरीका है?

हाँ। इस पृष्ठ पर पहले वर्णित एकीकरण चरणों का पालन करके सुविधाओं को Google वॉलपेपर ऐप के नवीनतम संस्करण में लागू किया जा सकता है।

अधिक जानकारी के लिए अपने टीएएम से संपर्क करें।

क्या Google ऐप या स्रोत कोड साझा कर सकता है ताकि OEM अपने सेटिंग मेनू पर डायनामिक रंग पूर्वावलोकन का अपना संस्करण लागू कर सकें, जो Google के वॉलपेपर पिकर ऐप पर दिखाए गए पूर्वावलोकन अनुभाग के समान दिखता है?

पूर्वावलोकन प्रस्तुत करने वाली मुख्य कक्षाएं WallpaperPicker2 और Launcher3 हैं।

वॉलपेपर पूर्वावलोकन स्क्रीन WallpaperSectionController है।

रंग बदलने के बाद पूर्वावलोकन कैसे लागू करें, जैसा कि Google वॉलपेपर ऐप में दिखाया गया है?

वॉलपेपर पिकर ऐप को उम्मीद है कि लॉन्चर से एक ContentProvider उपलब्ध होगा (एक Launcher3 -आधारित लॉन्चर के पास यह है)। पूर्वावलोकन लॉन्चर में GridCustomizationsProvider द्वारा प्रदान किया गया है, जिसे पढ़ने के लिए वॉलपेपर और स्टाइल ऐप के लिए लॉन्चर की मुख्य गतिविधि के मेटाडेटा में संदर्भित किया जाना चाहिए। यह सब AOSP के लॉन्चर3 में कार्यान्वित किया गया है और OEM के लिए उपलब्ध है।