Android 17 ve sonraki sürümlerde, anlık bildirimler için ölçeklenebilir kullanıcı arayüzü (HUN), çalışma zamanı kaynak yer paylaşımlarıyla (RRO'lar) ölçeklenebilir kullanıcı arayüzü çerçevesini kullanarak HUN panellerinin pencere yönetimini (konumlandırma, arka plan karartma, animasyonlar) özelleştirmenize olanak tanır. Bu özellik, dahili içerik oluşturmayı etkilemeden bildirimin kapsayıcısı üzerinde kontrol sağlar.
Uygulama
HUN'lar için ölçeklenebilir kullanıcı arayüzünün uygulanması şunları içerir:
- Herkese açık ve sistem API'leri: Ölçeklenebilir kullanıcı arayüzü ayrıştırıcılarında
HunWindowsınıfını ve<HunPanel>XML etiketi ayrıştırma mantığını kullanıma sunar. - İş ortağı uygulaması:
- Özel bir RRO yer paylaşımı tanımlayın.
- XML dosyası (örneğin,
res/xml/hun_panel.xml) oluşturmak için<HunPanel>kök etiketini kullanın. - Sınırları, yer çekimini (
TOPveyaBOTTOM), görünürlüğü ve arka planı (scrim drawable) kontrol etmek için<Variant>öğelerini tanımlayın. <Transitions>kullanarak varyantları sistem etkinlikleriyle (örneğin,_System_Show_Panel) eşleyin.
- Yeni cihazlar ve yükseltilen cihazlar: Bu, RRO'lar tarafından yapılan bir yapılandırma değişikliğidir. Cihazları yeni sistem görüntüsünü alacak şekilde yükseltmek için HUN davranışını tanımlayan uygun bir RRO oluşturun. Bu sayede kullanıcılar varsayılan değerden sapabilir.
- Etkinleştirme veya devre dışı bırakma: Bu özelliği etkinleştirmek veya devre dışı bırakmak için
window_statesyapılandırmasına@xml/hun_panelekleyin veya@xml/hun_panelsimgesini kaldırın. - Varsayılan ayarlar: Sistem varsayılan yapılandırmasını geçersiz kılan kendi RRO'nuzu uygulayarak varsayılan ayarları değiştirin.
Koşullar ve doğrulama
Yer paylaşımlarını etkinleştirme ve devre dışı bırakma işlemlerini test etmek için aşağıdaki sırayı kullanın:
adb shell cmd overlay disable --user current com.example.overlay.scalableUI.hun.bottom
RRO'yu etkinleştirir veya devre dışı bırakırsanız HUN sırasıyla en altta veya en üstte gösterilir.
Manuel doğrulama
- Konumlandırma: HUN'ların belirtilen yerçekimi (
TOPveyaBOTTOM) ve sınırlar içinde göründüğünü doğrulayın. - Etkileşimler: Kapatmak için kaydırmanın çalıştığını doğrulayın (kapatılamıyorsa düğmenin çalıştığını doğrulayın).
- Animasyonlar: Açık ve kapalı durumlar arasındaki geçiş animasyonlarını doğrulayın.