2016-11-06 4 views
0

Ich habe eine Symbolleiste und einen RelativeLayout Container innerhalb meiner Aktivität (nicht in der Mitte) definiert.Wie übersetzt und skaliert man eine Top-Overlay-Symbolleiste?

Ich möchte eine "erweitern" Operation definieren, in der der gesamte Container wird nach oben genau über der Symbolleiste animieren.

Wie kann ich eine AnimationSet (mit einer ScaleAnimation und einer TranslateAnimation) korrekt definieren, um das zu schaffen?

Ein Beispiel für den aktuellen Stand:

View movement

* Das "Custom View" in dem Diagramm repräsentiert die RelativeLayout Behälter I oben beschrieben.

+0

Was ist das übergeordnete Element für Toolbar und RelativeLayout? Und was ist diese benutzerdefinierte Ansicht in diesem Diagramm? – Srijith

+0

Das übergeordnete Element aller Ansichten ist ein CoordinatorLayout. Ich habe meine Frage zur benutzerdefinierten Ansicht bearbeitet. – Kanellis

Antwort

0

Wenn Sie eine AnimationSet verwenden sollte es minimal etwa wie folgt aussehen:

TranslateAnimation translateAnim = new TranslateAnimation(fromX , toX , fromY , toY); 
ScaleAnimation scaleAnim = new ScaleAnimation(fromX , toX , fromY , toY); 
AnimationSet animSet = new AnimationSet(true); 
animSet.addAnimation(translateAnim); 
animSet.addAnimation(scaleAnim); 
animSet.setFillAfter(true); 
animSet.setDuration(...); 

Natürlich müssen Sie in den Werten für fromX, toX füllen ... etc.

Aber Sie kann auch ViewPropertyAnimator anstelle eines AnimationSet verwenden, die Art und Weise weniger Code ist und einfach zu bedienen: einfach

relativeLayout.animate() 
    .translationY(0) // 0 is top of Y axis 
    .scaleX(...)  
    .setDuration(...); 

Dies ist Sie in einer Richtung zu zeigen, gerade füllen die Leerzeichen mit den Werten, die Sie benötigen, und überprüfen Sie die Dokumente für andere verfügbare Methoden.

+0

Ja. Ich weiß, wie die ganze Operation funktioniert. Aber ich weiß nicht, wie ich die richtigen toY- und toX-Koordinaten finde. – Kanellis

Verwandte Themen