package com.muyang.campus; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; import tyrantgit.explosionfield.ExplosionField; public class LoginActivity extends AppCompatActivity implements View.OnClickListener { private Button btn_login, btn_third_login,login; private ExplosionField explosionField; private LinearLayout third_login_layout, third_icon_layout, change_login, number_layout, password_layout; //View的显示和隐藏动画 private Animation mShowAnimation, mHiddenAnimation,mFadeoutAnimation; private boolean judge = false; private ImageView tencent, wechat, sina; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login_layout); initWidgets(); //使用学号登陆 btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { judge = true; explosionField.explode(btn_third_login); new Handler().postDelayed(new Runnable() { @Override public void run() { explosionField.explode(btn_login); } }, 800); btn_login.setOnClickListener(null); btn_third_login.setOnClickListener(null); change_login.startAnimation(mShowAnimation); change_login.setVisibility(View.VISIBLE); showNumberPasswordDialog(); login.startAnimation(mShowAnimation); login.setVisibility(View.VISIBLE); } }); //使用第三方登陆 btn_third_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { judge = false; explosionField.explode(btn_login); new Handler().postDelayed(new Runnable() { @Override public void run() { explosionField.explode(btn_third_login); } }, 800); btn_login.setOnClickListener(null); btn_third_login.setOnClickListener(null); showThirdLoginDialog(); change_login.startAnimation(mShowAnimation); change_login.setVisibility(View.VISIBLE); } }); change_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { //如果一开始选择的是第三方登陆 if (!judge) { hiddenThirdLoginDialog(); showNumberPasswordDialog(); login.startAnimation(mShowAnimation); login.setVisibility(View.VISIBLE); change_login.setClickable(false); hiddenChangeLoginDialog(); } else { hiddenNumberPasswordDialog(); showThirdLoginDialog(); login.startAnimation(mHiddenAnimation); login.setVisibility(View.INVISIBLE); change_login.setClickable(false); hiddenChangeLoginDialog(); } } }); } /** * 初始化控件 */ void initWidgets() { tencent = (ImageView) findViewById(R.id.tencent); wechat = (ImageView) findViewById(R.id.wechat); sina = (ImageView) findViewById(R.id.sina); btn_login = (Button) findViewById(R.id.btn_login); login= (Button) findViewById(R.id.login); btn_third_login = (Button) findViewById(R.id.btn_thirdlogin); third_login_layout = (LinearLayout) findViewById(R.id.third_login_layout); third_icon_layout = (LinearLayout) findViewById(R.id.third_icon_layout); number_layout = (LinearLayout) findViewById(R.id.number_layout); password_layout = (LinearLayout) findViewById(R.id.password_layout); change_login = (LinearLayout) findViewById(R.id.change_login); explosionField = ExplosionField.attach2Window(this); mShowAnimation = AnimationUtils.loadAnimation(this, R.anim.push_up_in); mHiddenAnimation = AnimationUtils.loadAnimation(this, R.anim.push_up_out); mFadeoutAnimation=AnimationUtils.loadAnimation(this,R.anim.fade_out); tencent.setOnClickListener(this); wechat.setOnClickListener(this); sina.setOnClickListener(this); login.setOnClickListener(this); } /** * 隐藏学号密码输入框 */ void hiddenNumberPasswordDialog() { number_layout.startAnimation(mFadeoutAnimation); number_layout.setVisibility(View.INVISIBLE); password_layout.setVisibility(View.INVISIBLE); password_layout.startAnimation(mFadeoutAnimation); } /** * 显示学号密码输入框 */ void showNumberPasswordDialog() { change_login.setClickable(true); number_layout.startAnimation(mShowAnimation); number_layout.setVisibility(View.VISIBLE); password_layout.startAnimation(mShowAnimation); password_layout.setVisibility(View.VISIBLE); } /** * 显示使用第三方登陆对话框 */ void showThirdLoginDialog() { change_login.setClickable(true); third_login_layout.setAnimation(mShowAnimation); third_login_layout.setVisibility(View.VISIBLE); third_icon_layout.setAnimation(mShowAnimation); third_icon_layout.setVisibility(View.VISIBLE); } /** * 隐藏第三方登陆对话框 */ void hiddenThirdLoginDialog() { third_login_layout.setAnimation(mHiddenAnimation); third_login_layout.setVisibility(View.INVISIBLE); third_icon_layout.setVisibility(View.INVISIBLE); third_icon_layout.setAnimation(mHiddenAnimation); } /** * 显示切换登陆方式对话框 */ void showChangeLoginDoalog() { change_login.startAnimation(mShowAnimation); change_login.setVisibility(View.VISIBLE); } /** * 隐藏切换登陆方式对话框 */ void hiddenChangeLoginDialog() { change_login.setVisibility(View.INVISIBLE); change_login.startAnimation(mHiddenAnimation); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tencent: Toast.makeText(LoginActivity.this, "tencent", Toast.LENGTH_SHORT).show(); break; case R.id.wechat: Toast.makeText(LoginActivity.this, "wechat", Toast.LENGTH_SHORT).show(); break; case R.id.sina: Toast.makeText(LoginActivity.this, "sina", Toast.LENGTH_SHORT).show(); break; case R.id.login: Toast.makeText(LoginActivity.this, "登陆成功", Toast.LENGTH_SHORT).show(); } } }