2014-01-21 2 views
6

Ich versuche, einen einfachen Animationseffekt für den Anmeldebildschirm zu implementieren.Erstellen Sie ein Layout mit Animation nach dem Klicken in Android

Hier ist das Szenario,

1: Einiger Text und eine Login-Button werden standardmäßig angezeigt werden.

2: Nach dem Klicken auf den Login-Button erscheint ein neues Frame-Layout von unten nach oben. Dieses Layout fordert den Benutzer auf, seinen Benutzernamen und sein Passwort einzugeben.

Ich kann eine Animation machen, die von einem Elternteil zum anderen überlagern wird. In diesem Szenario suche ich nach einer Animation, die erscheint, ohne die Aktivität zu verlassen.

+0

Haben Sie versucht mit [LayoutAnimationController] (http://developer.android.com/reference/android/view/animation/LayoutAnimationController.html)? – codeMagic

+0

NineOldAndroids? – MarkySmarky

+0

Wenn die Animationen so einfach sind, verwenden Sie die traditionelle Translationsanimation von Android und starten Sie sie auf einer beliebigen Anzahl von Ansichten, um sie parallel laufen zu lassen. – Srikanth

Antwort

17

Zuerst setzen Sie invisible zu Ihrem Layout.
Legen Sie die Animation auf slideUp und slideDown fest.

final LinearLayout layout = (LinearLayout)findViewById(R.id.yourlayout); 

    button.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View arg0) { 
      Animation slideUp = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_up); 
      Animation slideDown = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_down); 

      if(layout.getVisibility()==View.INVISIBLE){ 

       layout.startAnimation(slideUp); 
       layout.setVisibility(View.VISIBLE); 
     } 
    }); 

slide_up.xml (Erstellen in res/anim Verzeichnis)

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:fromYDelta="500" android:duration="500"/> 
</set> 

slide_down.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:fromYDelta="0" android:toYDelta="500" android:duration="500"/> 
</set> 

Hinweis: Sie sollten die Werte in slide_down.xml und slide_up.xml bearbeiten, bis Sie ein günstiges Ergebnis erhalten.
zum Beispiel: ändern zu android:fromYDelta="700"

+0

genau was ich wollte! Vielen Dank ! –