Größe des MediaStyle LargeIcon

8

Ich implementiere eine Lollipop-ähnliche Benachrichtigung für eine FTP-Streaming-Musik-Player-App mit der neuen Notification.MediaStyle-Klasse. Ich stelle das Albumcover als mein "großes Icon" dar.

Da das Albumcover direkt aus der aktuell abgespielten Datei stammt, variiert die Größe dieses Albumcover abhängig von der Quelle (möglicherweise bis zu 5000x5000).

Von meinem Pre-Lollipop-Code dekodiere ich die Bitmap unter einer maximalen Größe definiert durch: %Code%
und
android.R.dimen.notification_large_icon_width

was gut funktioniert, da die Dekodierzeit viel schneller ist und die Speichernutzung ideal ist.

Wenn dieser Code jedoch auf meinen MediaStyle-Stil angewendet wird, verwendet die erweiterte Ansicht ein Symbol, das viel größer ist als durch die Dimensionsparameter definiert, was beim Erweitern zu einem verschwommenen Albumcover führt.

Gibt es eine Konstante, um die maximale Größe zu definieren, die die erweiterte Ansicht für ein großes MediaStyle-Symbol haben kann? Oder gibt es eine Problemumgehung für dieses Problem? Wie es derzeit aussieht, ist es inakzeptabel, dass die Kunst mit voller Auflösung dekodiert wird, da dies dazu führen kann, dass die App aufgrund von OOM abstürzt.

    
initramfs 16.01.2015, 13:14
quelle

1 Antwort

2

Aus dem Lollipop-Quellcode kann ich eine Bildgröße von 128dp sehen, siehe notification_template_material_big_media.xml auf GitHub :

%Vor%

Dies ist für erweitertes Layout mit 3 oder weniger Aktionsschaltflächen. Suchen Sie nach Benachrichtigung .MediaStyle.getBigLayoutResource (int) auf GrepCode , wenn es mehr Schaltflächen gibt, scheint es notification_template_material_big_media.xml wird verwendet:

%Vor%

Und notification_template_icon_group.xml sieht so aus:

%Vor%

Sie finden notification_large_icon_width und notification_large_icon_height in ... / res / values ​​/ dimens.xml :

%Vor%

So die endgültige Antwort - 128dp für erweitertes Layout mit 3 oder weniger Aktionsschaltflächen und 64dp, wenn es mehr als 3 gibt.

    
s.maks 23.10.2015 14:07
quelle