2017-01-20 11 views
0

Ich möchte die „Animator Dauer Skala/Geschwindigkeit“ (vom Entwickler Optionen) erhalten, um eine korrekte Animationsgeschwindigkeit bei einigen Prozessen in meiner app (Beladungen und Echtzeit-basierte Animationen) einzustellen.Wie Android-Animation Skala Geschwindigkeit programmgesteuert erhalten?

Oder gibt es eine Möglichkeit, die Geschwindigkeit auf Standard/1x zu überschreiben (wenn der Benutzer 0,5x eingestellt hat), um nicht viele Fälle zu schreiben? (mit anderen Worten App basierte Animation Geschwindigkeit)

Sollte ich mich um dieses Problem kümmern, ist das ein häufiges Problem?

+0

Animationen haben eine Dauer, es ist nur accordly –

+0

@LucaNicoletti ändern sie es wie Quiz App ist, hat der Benutzer 10s zu beantworten, aber wenn seine Animation Skala die Animation endet in 5 s bis 0,5x setted ist (es funktioniert fin e mit Standard, 1x Geschwindigkeit). Die Animationsdauer hilft mir also nicht, mit dieser Situation fertig zu werden. – Aaron

+0

Endlich habe ich diesen Code gefunden, der mir geholfen hat, die aktuelle Animationsgeschwindigkeit zu erreichen. 'Settings.Global.getFloat (getContentResolver(), Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f);' – Aaron

Antwort

-1

für System-Anwendungen (versteckte Klasse)IWindowManager eine Methode hat alle drei Arten von Animationsgröße zu erhalten:

try { 
    IWindowManager iwm = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); 
    float windowAnimationScale = iwm.getAnimationScale(0); 
    float transitionAnimationScale = iwm.getAnimationScale(1); 
    float animatorDurationScale = iwm.getAnimationScale(2); 
} catch (RemoteException ignore) { } 

Für allgemeine Anwendungen, wenn auch nur Animator Dauer Maßstab benötigt wird, rufen Sie einfach diese statische Methode :

float animatorDurationScale = ValueAnimator.getDurationScale(); 
Verwandte Themen