Android 12'den itibaren Material You tasarımı, kullanıcıların ihtiyaçlarına uygun tek ve tutarlı bir deneyim oluşturup sahiplenmelerine yardımcı olmak amacıyla Android işletim sisteminde ifade ve akıcılığa odaklanıyor. Android iş ortağı olarak, Material You tasarımını aşağıdaki alanlarda Android cihazlarınıza dahil etmenizi öneririz:
- Dinamik renk
- Hareket
- Widget'lar
Dinamik renk
Dinamik renk, Material You tasarımının ana unsuru ve Android'in kullanıcılarına diğer cihazlarda olmayan bir şekilde daha basit ve daha derin bir özelleştirme sunma hedefine yönelik çok yıllık stratejisinin önemli bir parçasıdır. Material You şu özellikleri sunar:
Kullanıcılara ve geliştiricilere her Android cihazda kullanılabilen tutarlı ve zengin bir kişiselleştirme hikayesi sunar.
Android OEM'ler, sistem kullanıcı arayüzünü ve birinci taraf uygulamalarını kendi donanımları, markalarının renkleri, markaları ve formlarına uygun şekilde yenilemeye devam etme fırsatına sahip.
Dinamik renkten yararlanmak için Android 12 Material You renk ayıklama hikayesini, kullanıcılara sunduğunuz yazılım teklifinin önemli bir parçası olarak kullanın. Cihaz üzerinde, AOSP'deki renk ayıklama mantığını, özellikle de tek bir duvar kağıdı veya tema kaynak rengini alıp 65 renk API'si aracılığıyla çıkış veren mantığı kullanın. Dinamik renk koşulları için 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çiciyi kullanarak duvar kağıdını veya temayı değiştirir.
Kullanıcı aşağıdakilerden birini seçer:
Cihaz teması. Seçildiğinde Android, koşulları karşılayan tek bir kaynak renk seçer.
Yeni duvar kağıdı ve tema. AOSP mantığı, seçildiğinde otomatik olarak seçili duvar kağıdından tek bir kaynak renk seçer.
AOSP, tek kaynak rengi AOSP mantığına göre her biri 13 tonlu renk varyantı içeren 5 ton paletinde genişletir. Ardından 65 renk özelliğini doldurur.
Uygulamanın kullanıcı arayüzü, 65 renk özelliğini Android uygulama ekosistemi genelinde tutarlı bir şekilde 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ı rengini ayıklamayla ilgili uçtan uca mantığı elde etmek 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
Kesinlikle önerilir
- Açılış rengi sysprops'ini ayarlarken yarış koşulunu düzeltin.
- Yer paylaşımlarının tema değişiklikleri hakkında bilgilendirilmesine izin verme
- Başlatma rengi sysprops ayarlanırken yarış koşulunu düzeltme (2. tur)
- FeatureFlags'ı flags paketine taşıyın.
- Çok kullanıcılı tema desteğini doğru şekilde uygulama
- Belirtilen duvar kağıdı rengi seçeneğinin yeniden başlatma işleminden sonra eksik olması sorunu düzeltildi
- Üçüncül ton hesaplama hatası düzeltildi
- 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 ikisi de karşılanıyorsa renk bölümünü gösterir:
frameworks/base/packages/SystemUI/res/values/flags.xml
içinflag_monet
true
.- Paket adına sahip bir sistem sabit APK'sı,
packages/apps/ThemePicker/res/values/override.xml
dosyasındakithemes_stub_package
içinde 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'da yalnızca mevcut temel renkleri ve adlarını ayrıntılı olarak açıklayan kaynaklar bulunmalıdır.
Kısa kod, res/xml
altında aşağıdaki biçime sahip 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 bir item
ayrı bir ada sahiptir.
Her renk için açıklayıcı bir adla birlikte bir bundle_name_item
dizesi olmalıdır. Bunlar, karşılık gelen çevrilmiş dizeler res/values-language code
dizinlerine eklenerek çevrilebilir.
Gerçek renk değerleri, aynı XML'de veya aşağıdaki biçime sahip 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 grupları 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 bir rengin gerçek renk kodlarıdır.
1. Adım: Bir kullanıcı teması 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 veya hazır ayarlar arasından seçim yaptığı yerdir. Ürününüze ve kullanıcı demografinize uygun olarak, 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ı renginin ayıklanması varsayılan olarak açıktır. 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 renge ayıklayın
Duvar kağıdı rengini ayıklama özelliğini etkinleştirmek için yukarıda listelenen Android 12 yamalarını seçin (bu işlev, gelecekteki bir AOSP sürümünde varsayılan olarak etkinleştirilecektir).
Duvar kağıdı ayıklama işlemini tetikleyen AOSP mantığı, frameworks/base/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
üzerinde ThemeOverlayController#mOnColorsChangedListener
'te WallpaperManager#onWallpaperColorsChanged
aracılığıyla başlar. Tutarlı bir geliştirme deneyimi için değiştirilmemiş AOSP mantığını kullanmanızı öneririz.
Mantık, varsayılan olarak 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)
öğesini kullanın.
Kullanıma uygun olması için kaynak rengin (duvar kağıdından veya kullanıcı tarafından seçilen bir hazır ayardan ayıklanmış olsun) CAM16 kroma değerinin en az 5 olması gerekir. Bu, tek bir renkten 65 tonlu renge dönüştürüldüğünde kaynak rengin ince koyu tonlardan etkilenmemesini ve kullanıcı seçimini temsil etmesini sağlar. CAM16'da renkleri okumak ve değiştirmek için Cam#fromInt
veya Cam#getInt
tuşlarını kullanın.
Dinamik olmayan bir renk paleti kullanma Duvar kağıdı renginin çıkarılmasını desteklemeyen cihazlarda, aşağıdakileri 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
'teflag_monet
'ü devre dışı bırakarak varsayılan Material paletini kullanın.- Kullanıcıların, önceden ayarlanmış bir tema seçici kullanarak işletim sistemlerini kişiselleştirebildiğinden emin olun.
3. Adım: Kaynak rengi renk API'lerine genişletin
Android, önceki adımdan elde edilen tek kaynak rengi kullanarak 5 benzersiz ton paleti (vurgu 1-3, nötr 1-2) oluşturur. Her palet 13 renk içerir ve her renk farklı parlaklık değerleri (0 ila 1.000) içerir. Böylece toplam 65 renk elde edilir. Android 12 yamalarında sağlanan mantık, bu renk genişletmeyi doğru şekilde uygular. Aşağıdaki ayrıntılar, uygulama işlemini açıklamaktadır.
Geliştirici tutarlılığı için 5 ton paleti (accent1, accent2, accent3, neutral1, neutral2) ve bunlara karşılık gelen 13 renk, tek bir kaynak renge dayalı olmalıdır. CAM16 renk ve ton değerlerinde aşağıdaki gibi değişiklikler yapılmalıdır:
-
- Renk: "16" değerini kullanın.
- Ton: kaynakla aynı
-
- Renk: "32" değerini kullanın.
- Ton: 60 derece pozitif yönde döndürme
-
- Chroma: "4" değerini kullanın
- Ton: Kaynakla aynı
-
- Renk: "8" değerini kullanın.
- Ton: Kaynakla aynı
CTS, parlaklık ve ton API çağrılarını doğrulamaya yönelik testleri içerir. Çalıştırmak için atest SystemPalette
komutunu kullanın.
4. adım: Uygulamalarda ve sistem kullanıcı arayüzünde dinamik renkler kullanın
Bir cihazda dinamik renkler ayarlandıktan sonra uygulamalar, renkleri kullanmak için Material yönergelerini uygular. Üçüncü taraf uygulamaların kullanabileceği materyal yönergeleri, 26 Ekim 2021'e kadar material.io'da yayınlanacak. Sistem kullanıcı arayüzü ve birinci taraf uygulamalarda, dinamik renkleri kullanıcı deneyimine donanımınıza ve markanıza uygun ve cihazlarınızı farklılaştırmanıza yardımcı olacak şekilde entegre etmenizi önemle tavsiye ederiz.
Genel dinamik renk rehberliği için aşağıdakilere bakın:
Uygulamalardaki ve sistem kullanıcı 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 color
Uygulamalarda ve Sistem Kullanıcı Arayüzünde arka plan öğeleri 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'un renkleri nasıl eşleştirdiği ve API'lerin SysUI'de 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 derleme
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 android.theme.customization.theme_style
özelliği eklenir. Şu anda kod tabanında aşağıdaki dört varyant mevcuttur:
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 geliştirme yapın
Özel tema seçici kullanıldığında cihaz, aşağıdaki biçimde bir JSON dosyası sağlayarak Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
'e geçerli bir kaynak renk göndermelidir (746BC1
, geçerli bir kaynak renk örneğidir):
{
"android.theme.customization.system_palette":"746BC1",
"android.theme.customization.accent_color":"746BC1"
}
Bu işlem, duvar kağıdı rengi ayıklama işlemini atlar (2. Adım) ve sağlanan kaynak rengi doğrudan 65 renk özelliğine genişletir (3. Adım).
6. Adım: Destek kaydı oluşturun
Sistem entegrasyonunun yanı sıra, bir destek kaydı oluşturup marka adınızı (Build.MANUFACTURER
) bize bildirmeniz gerekir. Üçüncü taraf uygulamalarının çoğu dinamik renkleri göstermek amacıyla Android için Materyal Bileşenler'i kullandığından, hangi cihazların Dinamik renk tonları paletleri özelliğini entegre ettiğini belirtmek için sabit kodlu bir izin verilenler listesi kullanıyoruz.
Hareket
Akıcı hareket, cihazların modern ve birinci sınıf bir deneyim yaşamasını sağlar. Geliştiricilerin güvenini kazanmak ve memnuniyetini sağlamak için akışkan hareketin tutarlı görünmesi ve hissettirmesi gereken iki önemli parçası olan kaydırma aşma ve dalga efekti gerekir.
İşletim sisteminizde fazla kaydırma özelliğini kullanma
Android 12, kullanıcı bir listenin kenarından öteye kaydırmaya çalıştığında gösterilen, görüntü germe şeklinde daha duyarlı ve dinamik bir aşırı kaydırma hareketi içerir. Aşağıda bir örnek verilmiştir:
Şekil 2. Ayarlar'da gösterilen Android 12'nin kaydırma efekti
Geliştirici tutarlılığı için cihazlarınızdaki genel kaydırma efektinin aşağıdakine benzer olduğundan emin olun:
ActivityManager.isHighEndGfx()
için doğru değerin döndürüldüğü cihazlarda, aşırı kaydırma efekti ekranın doğrusal olmayan bir şekilde uzatılmasıdır (yukarıda gösterildiği gibi).Düşük performanslı cihazlarda uzatma efekti, sistem üzerindeki yükü azaltmak için doğrusal bir uzatmaya indirgenir.
Birinci taraf uygulamalarında fazla kaydırma kullanma
Özel görünümleri kullanırken uzatma efektini kullanan bazı uygulamalarda ve sistem kullanıcı arayüzünde değişiklik yapmanız gerekebilir.
Fazla kaydırmayı desteklemek için en yeni kitaplıklara yükseltin:
RecyclerView
içinandroidx.recyclerview:recyclerview:1.3.0-alpha01
NestedScrollView
veEdgeEffectCompat
içinandroidx.core:core:1.7.0-alpha01
ViewPager
içinandroidx.viewpager:viewpager:1.1-alpha01
EdgeEffect
kullanan özel düzenler için aşağıdaki kullanıcı deneyimi değişikliklerini göz önünde bulundurun:Fazla kaydırma yapıldığında kullanıcılar, uzatılırken düzenin içeriğiyle etkileşimde bulunmamalıdır. Kullanıcılar yalnızca esnemeyi kontrol etmeli, örneğin içerikteki bir düğmeye basmamalıdır.
Kullanıcılar
EdgeEffect
animasyonu sırasında içeriğe dokunduğunda, animasyonu yakalamalı ve genişletmeyi manipüle etmelerine izin vermelidir. Geçerli pull değeri,EdgeEffectCompat.getDistance()
öğesi için mevcuttur.Çekme değerini değiştirmek ve tüketilen tutarı döndürmek için
onPullDistance()
değerini kullanın. Bu sayede geliştiriciler, parmak başlangıç konumunun ötesinde içeriği uzattıkça germe işleminden kaydırmaya sorunsuz bir şekilde geçiş yapabilir.İç içe yerleştirilmiş kaydırma kullanılırken içerik uzatılmışsa uzatılmış içerik, iç içe yerleştirilmiş içerikten önce dokunma hareketini tüketmelidir. Aksi takdirde, parmak uzatmayı bırakmak yerine yön değiştirdiğinde iç içe yerleştirilmiş içerik kaydırılabilir.
Ekranın dışına kaydırmayla ilgili ayrıntılar için Kaydırma hareketine animasyon ekleme başlıklı makaleyi inceleyin.
İşletim sisteminizde dalga (dokunma geri bildirimi) kullanma
Android 12, kullanıcılara dokunma geri bildirimi sağlamak için daha yumuşak ve daha ince bir dokunma dalgası içerir.
Şekil 3. Daha yumuşak bir doldurma animasyonuyla Android 12 dalga efekti
Geliştiriciler tarafından öngörülebilirlik ve mükemmel bir kullanıcı deneyimi sağlamak için cihazlarınızdaki dalgalanma etkisinin yukarıda gösterilen örneğe benzer olduğundan emin olun. Dalga etkisini desteklemek için belirli entegrasyon adımları uygulamanız gerekmese de uygulamanızda istenmeyen gerileme olup olmadığını kontrol etmek için cihazlarınızdaki etkiyi test etmeniz gerekir.
Widget'lar
Widget'lar bir Android cihazı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 (örneğin, yuvarlatılmış köşe boyutu) ilgili geliştirici API'lerini destekleyin. Uygulamanız, widget'ları API'ler aracılığıyla parametre sağlama ve widget'ların kullanıcı tarafından boyutlandırılabilir ve yapılandırılabilir olmasını sağlama konusunda doğru bir ş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 yapılacaklar listesini inceleyin.
- Öncelik, platformdaki önerilere göre belirlenir.
- Bir öneriyle ilgili ayrıntılar için Değişiklik sütunundaki bağlantıyı takip edin.
Bölge Değişim Uygulama önceliği Ev deneyimini iyileştirin Önizlemeleri ölçeklenebilir hale getirme P1 Widget açıklaması ekleme P1 Widget'ları kişiselleştirmeyi kolaylaştırın P2 (isteğe bağlı) Daha akıcı geçişler yapma P0 Yayın sıçrama tahtalarından kaçının P0 Widget yönergelerini benimseme Widget boyutlarını ve düzenlerini iyileştirme P2 Dinamik renkler uygulama P0 Yuvarlatılmış köşeler uygulama P0 Yeni birleşik düğmeler ekleme P2 Mevcut widget kodunu basitleştirme RemoteView koleksiyonlarını basitleştirme P2 RemoteView çalışma zamanını basitleştirin P2
Ek kaynaklar
SysUI renk kullanımı
(accent1 = A1, accent2 = A2, accent3 = A3, neutral1 = N1, neutral2 = N2)
Şekil 4. Sistem kullanıcı arayüzünde dinamik renk kullanımı
Materyal kitaplığı renk özelliği güncellemeleri
Materyal, belirli görünümlere renk sağlamak için kullanılan renk rolleri oluşturarak önümüzdeki sürümde tema özelliklerini 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 | renkOnBirincil | system_accent1_0 | system_accent1_800 |
İkincil | colorSecondary | system_accent2_600 | system_accent2_200 |
İkincil | renk | system_accent2_0 | sistem_açı2_800 |
Hata | renk Hatası | Yok (red_600) | Yok (kırmızı_200) |
On Error | colorOnError | Yok (beyaz) | Yok (kırmızı_900) |
Arka plan | android:colorBackground | system_neutral1_10 | sistem_nötr1_900 |
Arka planda | colorOnBackground | system_neutral1_900 | system_neutral1_100 |
Yüzey | colorSurface | system_neutral1_10 | system_neutral1_900 |
Yüzey | renkOnSurface | 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 İçeriği | colorPrimaryStateContent | system_accent1_700 | system_accent1_200 |
Birincil Durum Katmanı | renkBirincilEyalet Katmanı | sistem_abi1_600 | system_accent1_300 |
İkincil Eyalet İçeriği | colorSecondaryStateContent | system_accent2_700 | system_accent2_200 |
İkincil Durum Katmanı | colorSecondaryStateLayer | system_accent2_600 | sistem_açı2_300 |
Birincil Eyalet İçeriğinde | renkOnBirincilDurumİçerik | system_accent1_0 | system_accent1_800 |
Birincil Eyalet Katmanında | renkOnBirincilEyalet Katmanı | system_accent1_900 | system_accent1_800 |
İkincil Durum İçeriğinde | colorOnSecondaryStateContent | sistem_açı2_0 | system_accent2_800 |
İkincil durum katmanında | colorOnSecondaryStateLayer | sistem_açı2_900 | sistem_açı2_800 |
Birincil Kapsayıcı Durumu İçeriği Hakkında | colorOnPrimaryContainerStateContent | sistem_abi1_900 | system_accent1_900 |
Birincil Kapsayıcı Durumu Katmanında | colorOnPrimaryContainerStateKatman | system_accent1_900 | system_accent1_900 |
İkincil Kapsayıcı Durumu İçeriği Hakkında | colorOnSecondaryContainerStateContent | system_accent2_900 | sistem_açı2_900 |
İkincil Kapsayıcı Durumu Katmanında | colorOnSecondaryContainerStateLayer | system_accent2_900 | sistem_açı2_900 |
Üçüncül Kapsayıcı Durumu İçeriğinde | renkOnTertiaryContainerStateContent | sistem_açı3_900 | system_accent3_900 |
Üçüncül Kapsayıcı Durumu Katmanında | colorOnTertiaryContainerStateLayer | system_accent3_900 | sistem_açı3_900 |
Yüzey Durumu İçeriğinde | colorOnSurfaceStateContent | system_neutral1_900 | system_neutral1_100 |
Yüzey Durumu Katmanı | colorOnSurfaceStateLayer | sistem_nötr1_900 | system_neutral1_100 |
Varyant Durumu İçeriği Gösterme | colorOnSurfaceVariantStateContent | sistem_nötr2_700 | sistem_nötr2_200 |
Yüzey Varyant Durum Katmanı | colorOnSurfaceVariantStateLayer | system_neutral2_700 | system_neutral2_200 |
Hata Durumu İçeriği | colorErrorStateContent | red800 | kırmızı200 |
SSS
Renk ayıklama
Kullanıcı bir duvar kağıdını değiştirdiğinde, renk ayıklama işlemi otomatik olarak mı yapılır, yoksa özelliğin bir yerden tetiklenmesi gerekir mi?
Android 12 yamaları ile duvar kağıdı rengi ayıklama özelliği varsayılan olarak açıktır.
ThemeOverlayController.java
, ThemeOverlayController#mOnColorsChangedListener
ve WallpaperManager#onWallpaperColorsChanged
ile mantığı tetikler.
Animasyonlu Duvar Kağıtları veya Video Duvar Kağıtları için Renk Ayıklama'nın ekrandan ne zaman renk aldığını öğrenebilir miyiz? Bazı kullanıcılar, en çok gösterilen son karedeki renkleri tercih edebilir.
Renk ayıklama, kullanıcı duvar kağıdını ayarladığında veya ekranın güç döngüsü tamamlandıktan sonra (WallpaperEngine#notifyColorsChanged
etkinliğine yanıt olarak) tetiklenir. Son WallpaperColors
etkinliği (canlı duvar kağıdından), kullanıcı ekranı kapatıp tekrar açtıktan sonra uygulanır.
Tema/duvar kağıdı seçici
Tema seçicinin, kullanıcıların en yüksek sıklıktaki renkten farklı olarak birden fazla kaynak renk seçebilmesini nasıl etkinleştirebilirim? Bu renkleri ayıklama mantığından almamızın bir yolu var mı?
Evet. Tema seçicinizde ColorScheme#getSeedColors(wallpaperColors: WallpaperColors)
simgesini kullanabilirsiniz.
Pixel adlarında temalı Simge olarak bir özellik bulunur. Paylaştığınız üç yamaya dahil mi? 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 ayıklama ve seçim özellikleri etkinken kullanmanın bir yolu var mı?
Evet. Bu sayfanın önceki bölümlerinde açıklanan entegrasyon adımlarını uygulayarak Google Duvar Kağıdı uygulamasının en son sürümüne özellikler uygulanabilir.
Daha fazla bilgi için TAM'ınızla iletişime geçin.
OEM'lerin, ayarlar menüsünde dinamik renk önizlemesinin kendi sürümlerini uygulayabilmesi için Google'ın uygulamayı veya kaynak kodunu paylaşması mümkün mü? Bu önizleme, 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
'tir.
Duvar kağıdı önizleme ekranı WallpaperSectionController
şeklindedir.
Google Duvar Kağıdı uygulamasında gösterildiği gibi renk değiştirildikten sonra Önizleme nasıl uygulanır?
Duvar kağıdı seçici uygulaması, Başlatıcı'da ContentProvider
öğesinin (Launcher3
tabanlı bir başlatıcıda bulunur) kullanılabilir olmasını bekler. Önizleme, başlatıcıda GridCustomizationsProvider
tarafından sağlanır. Duvar kağıdı ve stil uygulamasının bunu okuyabilmesi için başlatıcının ana etkinliğinin meta verilerinde bu önizlemeye referans verilmelidir. Tüm bunlar AOSP'nin Launcher3'ünde uygulanır ve OEM'ler tarafından kullanılabilir.