2015-05-20 101 views
1

我正在android应用程序和我的动画不工作时,我点击按钮。Android按钮onclicklistener动画不工作

这里我的代码,

//Login layout signup button click listener to hide login layout and show signup layout 
     loginUserSignupBTN.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      startActivityActionFadeInAnim.setAnimationListener(new Animation.AnimationListener() { 
       @Override 
       public void onAnimationStart(Animation animation) { 
        signupDetailsLayout.startAnimation(startActivityActionSlideUpAnim); 
       } 

       @Override 
       public void onAnimationEnd(Animation animation) { 

       } 

       @Override 
       public void onAnimationRepeat(Animation animation) { 

       } 
      }); 

      startActivityActionFadeOutAnim.setAnimationListener(new Animation.AnimationListener() { 
       @Override 
       public void onAnimationStart(Animation animation) { 
        loginDetailsLayout.setAnimation(startActivityActionSlideDownAnim); 
       } 

       @Override 
       public void onAnimationEnd(Animation animation) { 
        try { 

         Thread.sleep(200); 

        } catch (InterruptedException e) { 
         //We are doing nothing here 
         System.out.println(e.toString()); 
        } 
        finally { 
         signupDetailsLayout.startAnimation(startActivityActionFadeInAnim); 
        } 
       } 

       @Override 
       public void onAnimationRepeat (Animation animation){ 

       } 
      }); 


      loginDetailsLayout.setAnimation(startActivityActionFadeOutAnim); 

      Toast.makeText(StartActivity.this, "Signup clicked", Toast.LENGTH_LONG).show(); 
     } 
    }); 

吐司工作正常,但我想动画不能正常工作。

这里是我的XML布局文件,

<RelativeLayout 
    android:id="@+id/startActivityAppLogoLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_centerInParent="true" 
    android:padding="5dp" 
    > 


    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/startActivityAppLogo" 
     android:layout_alignParentTop="true" 
     android:src="@mipmap/logo" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/startActivityAppLogo" 
     android:text="@string/start_activity_app_title" 
     android:layout_marginTop="10sp" 
     android:gravity="center" 
     android:id="@+id/startActivityAppTitleTV" 
     android:textColor="#7f8c8d"/> 

</RelativeLayout> 


<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/loginDetailsLayout" 
    android:gravity="center" 
    android:layout_centerInParent="true" 
    android:padding="5dp" 
    android:visibility="invisible" 
    > 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/userLoginNameET" 
     android:ems="12" 
     android:hint="@string/login_user_name_edit" 
     android:textColor="#1abc9c" 
     /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="12" 
     android:hint="@string/login_user_pass_et" 
     android:id="@+id/userLoginPasswordET" 
     android:layout_below="@+id/userLoginNameET" 
     android:layout_marginTop="20dp" 
     android:textColor="#1abc9c"/> 


    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/login_user_login_btn" 
     android:id="@+id/userLoginButtonLogin" 
     style="?android:buttonBarButtonStyle" 
     android:padding="5dp" 
     android:textColor="#D24D57" 
     android:textAllCaps="false" 
     android:layout_below="@+id/userLoginPasswordET" 
     android:layout_alignLeft="@+id/userLoginPasswordET" 
     android:layout_alignStart="@+id/userLoginPasswordET" 
     android:textSize="18sp"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:text="@string/login_user_forgot_tv" 
     android:layout_below="@id/userLoginButtonLogin" 
     android:textColor="#000000" 
     android:id="@+id/userLoginForgotTV"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/login_user_signup_btn" 
     android:id="@+id/userLoginButtonSignup" 
     style="?android:buttonBarButtonStyle" 
     android:padding="5dp" 
     android:textColor="#c0392b" 
     android:textAllCaps="false" 
     android:layout_below="@+id/userLoginPasswordET" 
     android:layout_alignRight="@+id/userLoginPasswordET" 
     android:layout_alignEnd="@+id/userLoginPasswordET" 
     android:textSize="18sp"/> 

</RelativeLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/signupDetailsLayout" 
    android:gravity="center" 
    android:layout_centerInParent="true" 
    android:padding="5dp" 
    android:visibility="invisible" 
    > 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/userSignupNameET" 
     android:ems="12" 
     android:hint="@string/signup_user_name_edit" 
     android:textColor="#1abc9c" 
     /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textEmailAddress" 
     android:ems="12" 
     android:id="@+id/userSignupEmailET" 
     android:layout_marginTop="20dp" 
     android:hint="@string/signup_user_email_et" 
     android:layout_below="@+id/userSignupNameET" 
     android:textColor="#1abc9c"/> 


    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="12" 
     android:hint="@string/login_user_pass_et" 
     android:id="@+id/userSignupPasswordET" 
     android:layout_below="@+id/userSignupEmailET" 
     android:layout_marginTop="20dp" 
     android:textColor="#1abc9c"/> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="phone" 
     android:ems="12" 
     android:id="@+id/userSignupPhoneET" 
     android:hint="@string/signup_user_mobile_et" 
     android:layout_below="@+id/userSignupPasswordET" 
     android:layout_marginTop="20dp" 
     android:textColor="#1abc9c"/> 


    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/login_user_login_btn" 
     android:id="@+id/userSignupButtonLogin" 
     style="?android:buttonBarButtonStyle" 
     android:padding="5dp" 
     android:textColor="#c0392b" 
     android:textAllCaps="false" 
     android:layout_below="@+id/userSignupPhoneET" 
     android:layout_alignLeft="@+id/userSignupPhoneET" 
     android:layout_alignStart="@+id/userSignupPhoneET" 
     android:textSize="18sp"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="14sp" 
     android:text="@string/signup_user_terms_tv" 
     android:layout_below="@id/userSignupButtonLogin" 
     android:textColor="#000000" 
     android:id="@+id/userSignupTermsTV" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/login_user_signup_btn" 
     android:id="@+id/userSignupButtonSignup" 
     style="?android:buttonBarButtonStyle" 
     android:padding="5dp" 
     android:textColor="#D24D57" 
     android:textAllCaps="false" 
     android:layout_below="@+id/userSignupPhoneET" 
     android:layout_alignRight="@+id/userSignupPhoneET" 
     android:layout_alignEnd="@+id/userSignupPhoneET" 
     android:textSize="18sp"/> 



</RelativeLayout> 

我也试图创建一个功能,但它没有工作,要么和代码,

//Login layout signup button click listener to hide login layout and show signup layout 
     loginUserSignupBTN.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       activateLayoutAnimation(signupDetailsLayout, loginDetailsLayout); 
       //Toast.makeText(StartActivity.this, "Signup clicked", Toast.LENGTH_LONG).show(); 
      } 
     }); 

功能是,

//For action layout animations 
    private void activateLayoutAnimation(final RelativeLayout showLayout, final RelativeLayout hideLayout){ 


     startActivityActionFadeInAnim.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 
       showLayout.startAnimation(startActivityActionSlideUpAnim); 
      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 

      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 
     }); 

     startActivityActionFadeOutAnim.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 
       hideLayout.setAnimation(startActivityActionSlideDownAnim); 
      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       try { 

        Thread.sleep(200); 

       } catch (InterruptedException e) { 
        //We are doing nothing here 
        System.out.println(e.toString()); 
       } 
       finally { 
        showLayout.startAnimation(startActivityActionFadeInAnim); 
       } 
      } 

      @Override 
      public void onAnimationRepeat (Animation animation){ 

      } 
     }); 


     hideLayout.setAnimation(startActivityActionFadeOutAnim); 


    } 

谢谢你的时间和帮助朋友。

回答

1

setAnimation不会立即开始动画。要立即开始,请改用startAnimation。

+0

Thanx帮助我,它的工作类型,我现在需要的只是更多地破解代码,使他们正常工作。 ;) 非常感谢你。 –