android neue Größe nach der Skalierung animation

Ich bin mit Translate und scale-animation. Zuerst übersetze ich meine Frame-Layout in die Mitte des Bildschirms und ich seine position-Parameter mithilfe von layout-Parametern, um die Mitte des Bildschirms. Das klappt einwandfrei! Auf übersetzen-animation Ende ich renne die Skala animation, meine layout-Schuppen 2-mal seine ursprüngliche Größe. Eigentlich ist meine frame-Layout (was ich bin animiert) besteht aus den Tasten und Bild-Ansichten. Wie in android die animation nicht, verwandelt sich die Ansicht, es ändert sich nur die position, auf die Sie gezogen werden müssen. Nun mein problem ist, dass ich kann nicht meine Tasten zu arbeiten. Denn Sie sind eigentlich nicht da!

Fand ich die Lösung für übersetzen animation, indem Sie dessen Parameter " position nach animation Ende. Bewegt die Ansicht, um eine neue position dauerhaft.

Jedoch im Falle der Skala animation habe ich zum ändern der GRÖßE das Layout zusammen mit dem Kind innerhalb. Aber es ist nicht wie ich bin die Multiplikation der ursprünglichen Höhe mit dem Skalierungsfaktor. hier ist mein code für die Skalierung animation.

ScaleAnimation scaleAnim = new ScaleAnimation(1.0f, 2.0f, 1.0f,
                    2.0f, Animation.RELATIVE_TO_SELF, 0.5f,
                    Animation.RELATIVE_TO_SELF, 0.5f);

            scaleAnim.setDuration(600);
            //scaleAnim.setFillEnabled(true);
            scaleAnim.setFillAfter(true);

            view.setAnimation(scaleAnim);
            view.startAnimation(scaleAnim);

            scaleAnim.setAnimationListener(new AnimationListener() {

                public void onAnimationStart(Animation animation) {


                }

                public void onAnimationRepeat(Animation animation) {


                }

                public void onAnimationEnd(Animation animation) {
                    FrameLayout.LayoutParams par = (FrameLayout.LayoutParams) view
                            .getLayoutParams();

                    par.height = view.getMeasuredHeight() * 2;
                    par.width = view.getMeasuredWidth() * 2;

                     view.setLayoutParams(par);
                    view.requestLayout();

                }
            });

p.s, setFillAfter(true) und setFillEnabled(true) sind nicht die Lösung.

  • Sie könnten dies tun, indem Sie alles, wo Sie es haben wollen, wenn die animation endet, und dann animieren Sie die position. Machen Sie sicher zu verbergen, bevor die animation gestartet wird und deaktivieren von Tasten, bis die Animationen beendet sind.
  • das problem ist, durch skalieren der animation die ursprüngliche Höhe und Breite nicht ändern, dass nach der Skalierung. Also meine Tasten funktionieren nicht
  • Auch nicht, wenn Sie erstellen Sie Sie in voller Größe und dann skalieren von sagen wir 10% der ursprünglichen Größe? Ich habe etwas ähnliches gemacht mit einem translate-und scale-animation. Und ich war in der Lage, klicken Sie auf die Schaltflächen, wenn die animation abgeschlossen. Ich werde versuchen zu Graben, bis Sie das Stück code für Sie.
  • Die Lösung wäre sehr dankbar, Mann. Eigentlich ist es wie ein dialog. ich verschieben Sie es auf Mitte gesetzt ist, um center über layout-para-margin. dann Vergrößere es auf zweimal der ursprünglichen Größe. Aber mein button bleibt irgendwo sonst nicht, wo es gezeigt wird.
Schreibe einen Kommentar