Android 12'den itibaren Material You tasarımı, Android OS'te ifade ve akıcılığa odaklanarak kullanıcıların ihtiyaçlarına uygun tek ve tutarlı bir deneyim oluşturup sahiplenmesine yardımcı olmayı amaçlar. Bir Android iş ortağı olarak, Android cihazlarınıza aşağıdaki alanlarda Material You tasarımını dahil etmeniz önerilir:
- Dinamik renk
- Hareket
- Widget'lar
Dinamik renk
Dinamik renk, Material You tasarımının merkezinde yer alır ve Android'in, kullanıcılarına diğer cihazların yapamayacağı şekilde daha basit ve kapsamlı özelleştirme sunmaya yönelik çok yıllık stratejisinin önemli bir parçasıdır. Material You'nun sunduğu özellikler:
Kullanıcılara ve geliştiricilere, herhangi bir Android cihazda kullanılabilen tutarlı ve zengin bir kişiselleştirme hikayesi sunar.
Android OEM'leri, sistem kullanıcı arayüzü ve birinci taraf uygulamalarında donanımları, marka rengi, modeli ve biçimiyle uyumlu şekilde yenilik yapmaya devam edebilir.
Dinamik renkten yararlanmak için Android 12 Material You renk çıkarma özelliğini, kullanıcılara sunduğunuz yazılımın önemli bir parçası olarak kullanın. Cihazda, AOSP'deki renk uyarlama mantığını kullanın. Özellikle tek bir duvar kağıdı veya tema kaynak rengini alıp 65 renk API'si aracılığıyla çıkışını yapan mantığı kullanın. Dinamik renk koşulları için Using Dynamic Color (Dinamik Renk Kullanımı) başlıklı makaleyi inceleyin.
Tam dinamik renk akışı, aşağıda gösterildiği gibi dört adımdan oluşur:
Şekil 1. Material You dinamik renk akışı
Kullanıcı, OEM seçici aracılığıyla duvar kağıdını veya temayı değiştirir.
Kullanıcı aşağıdakilerden birini seçer:
Cihaz teması. Bu seçenek belirlendiğinde Android, şartları karşılayan tek bir kaynak rengi otomatik olarak seçer.
Yeni duvar kağıdı + tema. Bu seçenek belirlendiğinde AOSP mantığı, seçilen duvar kağıdından otomatik olarak tek bir kaynak rengi seçer.
AOSP, tek kaynaklı rengi AOSP mantığına göre her biri 13 ton rengi varyantı içeren 5 ton paletine genişletir. Bu paletler daha sonra 65 renk özelliğini doldurur.
Uygulama kullanıcı arayüzü, Android uygulama ekosisteminde tutarlı bir şekilde 65 renk özelliğini kullanır. Cihazın sistem arayüzü ve OEM'ye özel uygulamalar için aynı renk paletini kullanmanız önerilir.
Android 12 yamaları
Duvar kağıdı renk uyarlama işleminin uçtan uca mantığını almak ve cihazın 65 renkli API'leri ekosistemle tutarlı bir şekilde doldurmasını sağlamak için Android 12 uygulamanıza aşağıdaki yamaları ekleyin:
Zorunlu
Önemle Tavsiye Edilir
- Önyükleme rengi sysprop'ları ayarlanırken yarışma koşulunu düzeltin.
- Tema değişiklikleri hakkında bildirim almak için yer paylaşımlarına izin verme
- Başlatma rengi sistem özelliklerini ayarlarken yarışma koşulunu düzeltme (2. tur)
- FeatureFlags'ı flags paketine taşıyın.
- Çok kullanıcılı tema desteğini doğru şekilde uygulama
- Yeniden başlatma işleminden sonra belirtilen duvar kağıdı rengi seçeneğinin eksik olması sorununu düzeltme
- Üçüncü rengi hesaplama hatasını düzeltme
- Arka plan uygulamalarının temayı değiştirmesine izin verme
ThemePicker'da özel renkleri belirtme
AOSP ThemePicker uygulamasını kullanıyorsanız WallpaperPicker uygulaması, aşağıdaki koşulların her ikisi de karşılandığında renk bölümünü gösterir:
frameworks/base/packages/SystemUI/res/values/flags.xmlüzerindekiflag_monet,true.packages/apps/ThemePicker/res/values/override.xmldosyasındakithemes_stub_packageiçinde paket adıyla bir sistem stub APK'sı tanımlanmıştır.
Stub APK biçimi
Bu APK'nın örnek sürümünü packages/apps/ThemePicker/themes adresinde bulabilirsiniz.
Bu APK yalnızca mevcut temel renkleri ve adlarını ayrıntılı olarak açıklayan kaynakları içermelidir.
Kaba kod, res/xml altında aşağıdaki biçimde bir XML dosyası içermelidir:
<?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>
Bu dosyada, aşağıdaki dizeler bundle_name_item olarak adlandırıldığı sürece color_bundles içindeki her item öğesinin farklı bir adı vardır.
Her renk için bir bundle_name_item dizesi ve her renk için açıklayıcı bir ad olmalıdır. Bunlar, ilgili çevrilmiş dizeleri res/values-language code dizinlerine eklenerek çevrilebilir.
Gerçek renk değerleri aynı XML'de veya aşağıdaki biçimde ayrı bir kaynaklar XML dosyasında olabilir:
<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>
Renk paketleri dizisindeki her öğe için bir color_primary_item ve bir color_secondary_item girişi olmalıdır (ve her iki renk de aynı renk olmalıdır). Bu color
girişlerinin değerleri, temel renk
bölümünde gösterilecek her rengin gerçek renk kodlarıdır.
1. adım: Kullanıcı temalandırma deneyimi oluşturun
Tema seçici, kullanıcıların yeni Material You kişiselleştirme özellikleriyle etkileşime girdiği ve renk seçenekleri ya da hazır ayarlar arasında seçim yapabildiği yerdir. Ürününüz ve kullanıcı demografiniz için uygun olduğu takdirde, tema seçici veya duvar kağıdı seçici kullanarak kullanıcılara daha zengin bir kişiselleştirme ve renk deneyimi sunabilirsiniz.
- Duvar kağıdı seçici kullanılırken duvar kağıdı renk uyarlaması varsayılan olarak etkindir. Ancak kullanıcıya daha fazla seçenek sunmak için seçicide bazı özelleştirmeler yapabilirsiniz.
2. adım: Duvar kağıdı rengini kaynak rengine dönüştürün
Duvar kağıdından renk uyarlama özelliğini etkinleştirmek için yukarıda listelenen Android 12 yamalarını seçin (bu işlevsellik, gelecekteki bir AOSP sürümünde varsayılan olarak etkinleştirilecektir).
Duvar kağıdı ayıklamayı tetikleyen AOSP mantığı, frameworks/base/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java ile başlar, ThemeOverlayController#mOnColorsChangedListener üzerinde WallpaperManager#onWallpaperColorsChanged aracılığıyla çalışır. Tutarlı bir geliştirme deneyimi için değiştirilmemiş AOSP mantığını kullanmanızı öneririz.
Varsayılan olarak, mantık kullanıma uygun en yüksek frekanslı rengi seçer.
Algoritma tarafından döndürülen diğer kaynak renklerden yararlanmak ve bu renkleri tema seçicide kullanıcılara sunmak için ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) kullanın.
Kullanıma uygun olması için bir kaynak rengin (duvar kağıdından çıkarılmış veya kullanıcı tarafından seçilmiş bir hazır ayar) minimum CAM16 renk doygunluğu değeri 5 olmalıdır. Bu, kaynak rengin tek bir renkten 65 tonlu renge dönüştürülürken ince koyu tonlardan etkilenmemesini ve kullanıcı tercihini temsil etmeye devam etmesini sağlar. CAM16'daki renkleri okumak ve değiştirmek için Cam#fromInt veya Cam#getInt simgesini kullanın.
Dinamik olmayan bir renk paleti kullanmaDuvar kağıdı renk uyarlama özelliğini desteklemeyen cihazlarda, aşağıdaki işlemleri yaparak dinamik rengi destekleyen Google uygulamalarının ve üçüncü taraf uygulamalarının harika görünmesini sağlayabilirsiniz:
frameworks/base/packages/SystemUI/res/values/flags.xmlüzerindeflag_monetseçeneğini devre dışı bırakarak varsayılan Material paletini kullanın.- Kullanıcıların, önceden ayarlanmış tema seçiciyi kullanarak işletim sistemlerini kişiselleştirmeye devam edebilmelerini sağlayın.
3. adım: Kaynak rengi, renk API'lerine genişletin
Android, önceki adımda elde edilen tek kaynak rengi kullanarak 5 benzersiz ton paleti (accent 1-3, neutral 1-2) oluşturur. Her palet 13 renk içerir ve her renk farklı parlaklık değerleri (0-1000) içerir. Toplamda 65 renk bulunur. Android 12 yamalarında sağlanan mantık, bu renk genişletmeyi doğru şekilde uygular. Aşağıda verilen ayrıntılarda uygulama açıklanmaktadır.
Geliştiricilerin tutarlılığı için 5 ton paleti (accent1, accent2, accent3, neutral1, neutral2) ve bunlara karşılık gelen 13 renk, aşağıdaki gibi CAM16 kroma ve renk tonu değerlerinde ilgili değişiklikler yapılarak tek bir kaynak rengine dayandırılmalıdır:
-
- Kroma: "16"yı kullanın.
- Ton: Kaynakla aynı
-
- Kroma: "32" değerini kullanın.
- Ton: 60 derece pozitif döndürme
-
- Kroma: "4"ü kullanın.
- Ton: Kaynakla aynı
-
- Kroma: "8"i kullanın.
- Ton: Kaynakla aynı
CTS, parlaklık ve renk tonu API çağrılarını doğrulama testlerini içerir. Çalıştırmak için
atest SystemPalette simgesini kullanın.
4. adım: Uygulamalarda ve Sistem Arayüzünde dinamik renkleri kullanın
Bir cihazda dinamik renkler ayarlandıktan sonra uygulamalar, renkleri kullanmak için Material kurallarına uyar. Materyal yönergeleri, üçüncü taraf uygulamaların kullanabilmesi için 26 Ekim 2021'e kadar material.io adresinde yayınlanacak. Sistem Arayüzü ve birinci taraf uygulamaları için, donanımınıza ve markanıza uygun şekilde kullanıcı deneyimi boyunca dinamik renkleri entegre etmenizi ve cihazlarınızı farklılaştırmanızı önemle tavsiye ederiz.
Genel dinamik renk kılavuzu için aşağıdakilere bakın:
Uygulamalardaki ve Sistem Arayüzündeki ön plan öğeleri için vurgu renkleri kullanın:
@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 colorUygulamalardaki arka plan öğeleri ve Sistem Arayüzü için nötr renkler kullanın:
@android:color/system_neutral1_0 … 1000 // most-used background color group @android:color/system_neutral2_0 … 1000 // used for higher-elevation surfaces
Material You'nun renkleri nasıl eşlediği ve SysUI'da API'lerin nasıl kullanıldığı hakkında daha fazla bilgi için Ek Kaynaklar bölümüne bakın.
5. adım: AOSP WallpaperPicker uygulamanıza dinamik renk seçenekleri ekleyin
Android 13 ve sonraki sürümler için geliştirme
Android 13'ten itibaren android.theme.customization.accent_color
kullanımdan kaldırılmıştır. Farklı renk varyantlarını desteklemek için yeni bir özellik android.theme.customization.theme_style eklendi. Şu anda kod tabanında dört varyant bulunmaktadır:
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.
Bunlar, aşağıdaki JSON'da gösterildiği gibi Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES adresine gönderilir:
{
"android.theme.customization.system_palette":"B1611C",
"android.theme.customization.theme_style":"EXPRESSIVE"
}
Android 12 ve önceki sürümler için derleme
Özel tema seçici kullanırken cihaz, aşağıdaki biçimde bir JSON dosyası sağlayarak Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES adresine geçerli bir kaynak rengi göndermelidir (burada 746BC1, geçerli bir kaynak rengi örneğidir):
{
"android.theme.customization.system_palette":"746BC1",
"android.theme.customization.accent_color":"746BC1"
}
Bu işlem, duvar kağıdı renk uyarlaması (2. adım) işlemini atlar ve sağlanan kaynak rengi doğrudan 65 renk özelliğine (3. adım) genişletir.
6. adım: Destek kaydı oluşturun
Sistem entegrasyonunun yanı sıra bir destek kaydı oluşturmanız ve marka adınızı (Build.MANUFACTURER) bize bildirmeniz gerekir. Üçüncü taraf uygulamalarının çoğu, dinamik renkleri göstermek için Android için Material Components'ı kullandığından, hangi cihazların dinamik renk ton paletleri özelliğini entegre ettiğini belirlemek için sabit kodlanmış bir izin verilenler listesi kullanıyoruz.
Hareket
Akıcı hareketler, cihazların modern ve birinci sınıf görünmesini sağlar. Geliştiricilerin güvenini ve memnuniyetini kazanmak ve sürdürmek için, akıcı hareketin iki önemli parçası olan kaydırma sonu ve dalgalanmanın tutarlı görünmesi ve hissedilmesi gerekir.
İşletim sisteminizde kaydırma sonu kullanma
Android 12, kullanıcının bir listenin kenarını geçerek kaydırmaya çalıştığı zaman gösterilen, görünümü uzatma şeklinde daha duyarlı ve dinamik bir kaydırma sonu hareketi içerir. Aşağıda bir örnek gösterilmektedir:
Şekil 2. Ayarlarda gösterildiği gibi Android 12'deki kaydırma sonu efekti
Geliştiricilerin tutarlılığı için cihazlarınızdaki genel kaydırma sonu efektinin aşağıdakine benzer olduğundan emin olun:
ActivityManager.isHighEndGfx()için doğru değerini döndüren cihazlarda, aşırı kaydırma efekti ekranın doğrusal olmayan şekilde uzatılmasıdır (yukarıda gösterildiği gibi).Daha düşük performanslı cihazlarda, esnetme efekti doğrusal esnetme olarak basitleştirilir (sistemdeki yükü azaltmak için).
Birinci taraf uygulamalarında aşırı kaydırma kullanma
Özel görünümleri kullanırken, esnetme efektini kullanan bazı uygulamaları ve sistem arayüzünü ayarlamanız gerekebilir.
Esnek aşırı kaydırmayı desteklemek için en son kitaplıklara yükseltin:
RecyclerViewiçinandroidx.recyclerview:recyclerview:1.3.0-alpha01NestedScrollViewveEdgeEffectCompatiçinandroidx.core:core:1.7.0-alpha01ViewPageriçinandroidx.viewpager:viewpager:1.1-alpha01
EdgeEffectkullanan özel düzenler için aşağıdaki kullanıcı deneyimi değişikliklerini göz önünde bulundurun:Esnetme kaydırma sonu ile kullanıcılar, düzen esnetilirken düzenin içeriğiyle etkileşim kurmamalıdır. Kullanıcılar yalnızca uzatmayı değiştirmeli, örneğin içerikteki bir düğmeye basamamalıdır.
Kullanıcılar
EdgeEffectanimasyonu devam ederken içeriğe dokunduğunda animasyonu yakalamalı ve esnetmeyi değiştirmelerine izin verilmelidir. Mevcut çekme değeriEdgeEffectCompat.getDistance()tarihinden itibaren kullanılabilir.Çekme değerini değiştirmek ve tüketilen miktarı döndürmek için
onPullDistance()kullanın. Bu, geliştiricilerin parmak içeriği başlangıç konumunun ötesine doğru uzattığında, uzatma işleminden kaydırma işlemine sorunsuz bir şekilde geçiş yapmasına olanak tanır.İç içe kaydırma ile çalışırken içerik gerilirse iç içe yerleştirilmiş içerikten önce dokunma hareketini gerilme işlemi kullanmalıdır. Aksi takdirde, parmak yön değiştirdiğinde gerilme bırakılmak yerine iç içe yerleştirilmiş içerik kaydırılabilir.
Aşırı kaydırma ile ilgili ayrıntılar için Kaydırma Hareketini Animasyonla başlıklı makaleyi inceleyin.
İşletim sisteminizde titreşim (dokunma geri bildirimi) kullanma
Android 12, dokunma geri bildirimi için daha yumuşak ve daha ince bir dokunma dalgası içerir.
Şekil 3. Android 12'deki daha yumuşak dolgu animasyonuna sahip dalgalanma efekti
Geliştiricilerin tahmin edilebilirliği ve mükemmel bir kullanıcı deneyimi için cihazlarınızdaki dalgalanma efektinin yukarıdaki örnekte gösterilene benzer olduğundan emin olun. Dalgalanma efektlerini desteklemek için herhangi bir özel entegrasyon adımı uygulamanız gerekmez. Ancak uygulamanızda istenmeden gerilemelere yol açılıp açılmadığını kontrol etmek için efekti cihazlarınızda test etmeniz gerekir.
Widget'lar
Widget'lar, Android cihazların temel bileşenleridir. Android 12, tüm OEM'lerin desteklemesi gereken yeni API'ler ve API özellikleri içerir.
İşletim sisteminizde widget düzenleri, boyutlandırma ve yazılım parametreleriyle (ör. yuvarlak köşe boyutu) ilgili geliştirici API'lerini destekleyin. Uygulamanız, API'ler aracılığıyla parametre sağlama ve kullanıcı tarafından boyutlandırılabilir ve yapılandırılabilir widget'lar sağlama konusunda widget'ları doğru şekilde desteklemelidir.
Uygulamalarınızda, mümkün olduğunda yeni birinci taraf widget'ları güncellemek veya oluşturmak için yeni API özelliklerinden yararlanın. Kapsamınızdaki tüm birinci taraf uygulama widget'ları için aşağıdaki geliştirici kontrol listesini inceleyin.
- Öncelik, platformun önerilerine göre belirlenir.
- Bir öneriyle ilgili ayrıntılar için Değişiklik sütunundaki bağlantıyı takip edin.
Alan Değiştir Uygulama önceliği Ev deneyimini iyileştirme Ölçeklenebilir önizlemeler ekleme P1 Widget açıklaması ekleme P1 Widget'ları kişiselleştirmeyi kolaylaştırma P2 (isteğe bağlı) Daha akıcı geçişleri etkinleştirme P0 Yayın trambolinlerinden kaçının P0 Widget yönergelerini benimseme Widget boyutlarını ve düzenlerini iyileştirme P2 Dinamik renkleri uygulama P0 Yuvarlatılmış köşeleri uygulama P0 Yeni bileşik düğmeler ekleme P2 Mevcut widget kodunu basitleştirme RemoteView Koleksiyonlarını Basitleştirme P2 RemoteView çalışma zamanını basitleştirme P2
Ek kaynaklar
SysUI'de renk kullanımı
(accent1 = A1, accent2 = A2, accent3 = A3, neutral1 = N1, neutral2 = N2)
Şekil 4. Sistem Arayüzünde dinamik renk kullanımı
Materyal kitaplığı renk özelliği güncellemeleri
Material, belirli görünümlere renk sağlamak için kullanılan renk rolleri oluşturarak tema özelliklerini gelecek sürümde güncelleyecek.
| Renk rolü | Android Tema Özelliği | Açık tema Dinamik renk |
Koyu tema Dinamik renk |
|---|---|---|---|
| Birincil | colorPrimary | system_accent1_600 | system_accent1_200 |
| Birincil | colorOnPrimary | system_accent1_0 | system_accent1_800 |
| İkincil | colorSecondary | system_accent2_600 | system_accent2_200 |
| İkincil | colorOnSecondary | system_accent2_0 | system_accent2_800 |
| Hata | colorError | Geçerli değil (red_600) | Yok (red_200) |
| On Error | colorOnError | Geçerli değil (beyaz) | Yok (red_900) |
| Arka plan | android:colorBackground | system_neutral1_10 | system_neutral1_900 |
| Arka planda | colorOnBackground | system_neutral1_900 | system_neutral1_100 |
| Yüzey | colorSurface | system_neutral1_10 | system_neutral1_900 |
| Surface'te | colorOnSurface | system_neutral1_900 | system_neutral1_100 |
Material, durum özelliklerini aşağıdaki işaretçilerle güncelleyecektir:
| Renk rolü | Android Tema Özelliği | Açık tema Dinamik renk |
Koyu tema Dinamik renk |
|---|---|---|---|
| Birincil eyalet içeriği | colorPrimaryStateContent | system_accent1_700 | system_accent1_200 |
| Birincil Durum Katmanı | colorPrimaryStateLayer | system_accent1_600 | system_accent1_300 |
| İkincil eyalet içeriği | colorSecondaryStateContent | system_accent2_700 | system_accent2_200 |
| İkincil Eyalet Katmanı | colorSecondaryStateLayer | system_accent2_600 | system_accent2_300 |
| Birincil eyalet içeriğinde | colorOnPrimaryStateContent | system_accent1_0 | system_accent1_800 |
| Birincil Durum Katmanında | colorOnPrimaryStateLayer | system_accent1_900 | system_accent1_800 |
| İkincil eyalet içeriği hakkında | colorOnSecondaryStateContent | system_accent2_0 | system_accent2_800 |
| İkincil durum katmanında | colorOnSecondaryStateLayer | system_accent2_900 | system_accent2_800 |
| Birincil Kapsayıcı Durumu İçeriği | colorOnPrimaryContainerStateContent | system_accent1_900 | system_accent1_900 |
| Birincil Kapsayıcı Durumu Katmanında | colorOnPrimaryContainerStateLayer | system_accent1_900 | system_accent1_900 |
| İkincil Kapsayıcı Durumu İçeriği Hakkında | colorOnSecondaryContainerStateContent | system_accent2_900 | system_accent2_900 |
| İkincil kapsayıcı durum katmanında | colorOnSecondaryContainerStateLayer | system_accent2_900 | system_accent2_900 |
| Üçüncül Kapsayıcı Durumu İçeriğinde | colorOnTertiaryContainerStateContent | system_accent3_900 | system_accent3_900 |
| Üçüncül Kapsayıcı Durumu Katmanında | colorOnTertiaryContainerStateLayer | system_accent3_900 | system_accent3_900 |
| Yüzey durumu içeriğinde | colorOnSurfaceStateContent | system_neutral1_900 | system_neutral1_100 |
| Cihaz Üzerindeki Durum Katmanı | colorOnSurfaceStateLayer | system_neutral1_900 | system_neutral1_100 |
| Yüzey çeşidi durum içeriğinde | colorOnSurfaceVariantStateContent | system_neutral2_700 | system_neutral2_200 |
| Yüzey Varyantı Durum Katmanı | colorOnSurfaceVariantStateLayer | system_neutral2_700 | system_neutral2_200 |
| Hata Durumu İçeriği | colorErrorStateContent | red800 | red200 |
SSS
Renk uyarlama
Kullanıcı duvar kağıdını değiştirdikten sonra renk uyarlama işlemi otomatik olarak mı yapılır yoksa bir yerden tetiklenmesi mi gerekir?
Android 12 yamaları ile duvar kağıdı renk uyarlaması varsayılan olarak etkindir.
ThemeOverlayController.java, ThemeOverlayController#mOnColorsChangedListener ve WallpaperManager#onWallpaperColorsChanged ile mantığı tetikler.
Animasyonlu duvar kağıtları veya video duvar kağıtları için renk çıkarma işleminin ekrandaki rengi ne zaman aldığını öğrenebilir miyiz? Bazı kullanıcılar, en uzun süre gösterildiği için son karedeki renkleri tercih edebilir.
Renk çıkarma, kullanıcı duvar kağıdını ayarladığında veya ekran güç döngüsünden sonra (WallpaperEngine#notifyColorsChanged yanıtı olarak) tetiklenir. Kullanıcı ekranı kapatıp tekrar açtıktan sonra son WallpaperColors etkinliği (canlı duvar kağıdından) uygulanır.
Tema/duvar kağıdı seçici
Kullanıcıların en yüksek sıklıkta olan renk yerine birden fazla kaynak rengi seçebilmesi için tema seçiciyi nasıl etkinleştirebilirim? Bu renkleri çıkarma mantığından almanın bir yolu var mı?
Evet. Tema seçicinizde ColorScheme#getSeedColors(wallpaperColors: WallpaperColors) kullanabilirsiniz.
Pixel'de temalı simge adlı bir özellik bulunur. Paylaştığınız üç yama arasında yer alıyor mu? OEM'ler bunu nasıl uygulayabilir?
Hayır. Temalı simgeler beta sürümündedir ve Android 12'de kullanılamaz.
Google Duvar Kağıdı uygulamasını renk çıkarma ve seçme özellikleri etkin olarak kullanmanın bir yolu var mı?
Evet. Bu özellikler, bu sayfanın önceki bölümlerinde açıklanan entegrasyon adımları uygulanarak Google Duvar Kağıdı uygulamasının en son sürümünde kullanılabilir.
Daha fazla ayrıntı için TAM'nizle iletişime geçin.
Google, OEM'lerin ayarlar menüsünde dinamik renk önizlemesinin kendi sürümlerini uygulayabilmesi için uygulamayı veya kaynak kodu paylaşabilir mi? Bu sürüm, Google'ın duvar kağıdı seçici uygulamasında gösterilen önizleme bölümüne benzer.
Önizlemeyi oluşturan ana sınıflar WallpaperPicker2 ve Launcher3'dır.
Duvar kağıdı önizleme ekranı WallpaperSectionController.
Google Duvar Kağıdı uygulamasında gösterildiği gibi, rengi değiştirdikten sonra Önizleme'yi nasıl uygularım?
Duvar kağıdı seçici uygulaması, Başlatıcı'da ContentProvider olmasını bekler (Launcher3 tabanlı başlatıcılarda bu özellik bulunur). Önizleme, Başlatıcı'daki GridCustomizationsProvider tarafından sağlanır. Başlatıcı'nın ana Etkinliği'nin meta verilerinde, duvar kağıdı ve stil uygulamasının okuması için bu önizlemeye referans verilmelidir. Tüm bunlar AOSP'nin Launcher3'ünde uygulanır ve OEM'ler tarafından kullanılabilir.