Android实现闪屏及注册和登录界面之间的切换效果

 更新时间:2016年11月08日 14:55:09   作者:刘麒麟  
这篇文章主要介绍了Android实现闪屏及注册和登录界面之间的切换效果,实现思路是先分别实现闪屏、注册界面、登录界面的活动,再用Intent将相关的活动连接起来,实现不同活动之间的跳转,对android 实现闪屏和界面切换感兴趣的朋友一起看看吧

在没给大家介绍正文之前先给大家说下实现思路:

先分别实现闪屏、注册界面、登录界面的活动,再用Intent将相关的活动连接起来,实现不同活动之间的跳转。此次试验代码较多,我只列出主要代码,详细的代码可用底部的下载链接下载。

一、实验效果图:

二、主要代码:

(1)WelcomeActivity.Java(这部分代码实现的是第一页的欢迎页面)

package com.example.flashscreendemo; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.animation.AlphaAnimation; 
import android.view.animation.Animation; 
import android.view.animation.Animation.AnimationListener; 
import android.view.animation.RotateAnimation; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 
public class WeclomeActivity extends Activity { 
private RelativeLayout layoutWecome; 
private ImageView ivMonkey; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
/* 
* requestWindowFeature(Window.FEATURE_NO_TITLE); //取消电量状态栏 
* this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
* WindowManager.LayoutParams.FLAG_FULLSCREEN); 
*/ 
setContentView(R.layout.activity_weclome); 
layoutWecome = (RelativeLayout) findViewById(R.id.layoutWelcome); 
AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f); 
alphaAnimation.setDuration(1000); 
layoutWecome.startAnimation(alphaAnimation); 
ivMonkey = (ImageView) findViewById(R.id.ivMonkey); 
RotateAnimation rotateAnimation = new RotateAnimation(0, 360); 
rotateAnimation.setDuration(2000); 
rotateAnimation.setRepeatCount(2); 
ivMonkey.startAnimation(rotateAnimation); 
rotateAnimation.setAnimationListener(new AnimationListener() { 
@Override 
public void onAnimationStart(Animation animation) { 
} 
@Override 
public void onAnimationRepeat(Animation animation) { 
} 
@Override 
public void onAnimationEnd(Animation animation) { 
Intent intent = new Intent(WeclomeActivity.this, 
GuideActivity.class); 
startActivity(intent); 
finish(); 
} 
}); 
} 
}

(2)GuideActivity.java(这部分代码实现的是四个引导界面的功能)

package com.example.flashscreendemo; 
import java.util.ArrayList; 
import java.util.List; 
import com.example.flashscreendemo.adapter.GuideAdapter; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.support.v4.view.ViewPager.OnPageChangeListener; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.View; 
import android.widget.ImageView; 
public class GuideActivity extends Activity { 
private ViewPager vpGuide; 
private ImageView ivDots[]; 
private int[] dots_id; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_guide); 
initGuideViews(); 
initDots(); 
vpGuide.setOnPageChangeListener(new OnPageChangeListener() { 
@Override 
public void onPageSelected(int position) { 
for (int i = 0; i < ivDots.length; i++) { 
if (position == i) { 
ivDots[i] 
.setImageResource(R.drawable.bg_point_selected); 
} else { 
ivDots[i].setImageResource(R.drawable.bg_point_normal); 
} 
} 
} 
@Override 
public void onPageScrolled(int position, float arg1, int arg2) { 
} 
@Override 
public void onPageScrollStateChanged(int postion) { 
} 
}); 
} 
public void jumpMain(View view) { 
Intent intent = new Intent(this, 
com.example.minitwittersimulate.LoginActivity.class); 
startActivity(intent); 
finish(); 
} 
private void initDots() { 
dots_id = new int[] { R.id.ivDots1, R.id.ivDots2, R.id.ivDots3, 
R.id.ivDots4 }; 
ivDots = new ImageView[dots_id.length]; 
for (int i = 0; i < ivDots.length; i++) { 
ivDots[i] = (ImageView) findViewById(dots_id[i]); 
} 
} 
private void initGuideViews() { 
vpGuide = (ViewPager) findViewById(R.id.vpGuide); 
List<View> views = new ArrayList<View>(); 
LayoutInflater layoutInflater = getLayoutInflater(); 
View view1 = layoutInflater.inflate(R.layout.view1ofpager, null); 
views.add(view1); 
View view2 = layoutInflater.inflate(R.layout.view2ofpager, null); 
views.add(view2); 
View view3 = layoutInflater.inflate(R.layout.view3ofpager, null); 
views.add(view3); 
View view4 = layoutInflater.inflate(R.layout.view4ofpager, null); 
views.add(view4); 
GuideAdapter guideAdapter = new GuideAdapter(views); 
vpGuide.setAdapter(guideAdapter); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.guide, menu); 
return true; 
} 
}

(3)GuideAdapter.java(这部分代码实现的是数据适配的功能)

package com.example.flashscreendemo.adapter; 
import java.util.List; 
import android.support.v4.view.PagerAdapter; 
import android.view.View; 
import android.view.ViewGroup; 
public class GuideAdapter extends PagerAdapter { 
private List<View> views; 
public GuideAdapter(List<View> views) { 
super(); 
this.views = views; 
} 
@Override 
public int getCount() { 
return views.size(); 
} 
@Override 
public boolean isViewFromObject(View view, Object object) { 
return view == object; 
} 
@Override 
public Object instantiateItem(ViewGroup container, int position) { 
container.addView(views.get(position)); 
return views.get(position); 
} 
@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
container.removeView(views.get(position)); 
} 
}

(4)LoginActivity.java(这部分代码是登录界面的实现)

package com.example.minitwittersimulate; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.example.flashscreendemo.R; 
public class LoginActivity extends Activity { 
private SharedPreferences pref; 
private SharedPreferences.Editor editor; 
private EditText etUsername; 
private EditText etPassword; 
private Button btnLogin; 
private CheckBox cbRememberPass; 
private TextView tvRe; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_login); 
pref = PreferenceManager.getDefaultSharedPreferences(this); 
etUsername = (EditText) findViewById(R.id.etUsername); 
etPassword = (EditText) findViewById(R.id.etPassword); 
cbRememberPass = (CheckBox) findViewById(R.id.cbRememberPass); 
btnLogin = (Button) findViewById(R.id.btnLogin); 
tvRe = (TextView) findViewById(R.id.tvRe); 
boolean isRemember = pref.getBoolean("remember_password", false); 
if (isRemember) {// 将账号和密码都设置到文本框中 
String account = pref.getString("account", ""); 
String password = pref.getString("password", ""); 
etUsername.setText(account); 
etPassword.setText(password); 
cbRememberPass.setChecked(true); 
} 
btnLogin.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
String account = etUsername.getText().toString(); 
String password = etPassword.getText().toString(); 
if (account.trim().equals("")) { 
Toast.makeText(LoginActivity.this, "请您输入用户名!", 
Toast.LENGTH_SHORT).show(); 
return; 
} 
if (password.trim().equals("")) { 
Toast.makeText(LoginActivity.this, "请您输入密码!", 
Toast.LENGTH_SHORT).show(); 
return; 
} 
if (account.equals("admin") && password.equals("123456")) { 
editor = pref.edit(); 
if (cbRememberPass.isChecked()) {// 检查复选框是否被选中 
editor.putBoolean("remember_password", true); 
editor.putString("account", account); 
editor.putString("password", password); 
} 
else { 
editor.clear(); 
} 
editor.commit(); 
Intent intent = new Intent(LoginActivity.this, 
MainActivity.class); 
startActivity(intent); 
finish(); 
} else { 
Toast.makeText(LoginActivity.this, 
"account or password is invalid", 
Toast.LENGTH_SHORT).show(); 
} 
} 
}); 
tvRe.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
// TODO Auto-generated method stub 
Intent intent = new Intent(LoginActivity.this, Register.class); 
startActivity(intent); 
finish(); 
} 
}); 
} 
}

(5)User.java(这部分代码实现向注册界面传入用户输入的数据)

package com.example.minitwittersimulate; 
public class User { 
private String userName; 
private String passWord; 
private char sex; 
private String city; 
private String hobby; 
public String getUserName() { 
return userName; 
} 
public void setUserName(String userName) { 
this.userName = userName; 
} 
public String getPassWord() { 
return passWord; 
} 
public void setPassWord(String passWord) { 
this.passWord = passWord; 
} 
public char getSex() { 
return sex; 
} 
public void setSex(char sex) { 
this.sex = sex; 
} 
public String getCity() { 
return city; 
} 
public void setCity(String city) { 
this.city = city; 
} 
public String getHobby() { 
return hobby; 
} 
public void setHobby(String hobby) { 
this.hobby = hobby; 
} 
public User(String userName, String passWord, char sex, String city, 
String hobby) { 
super(); 
this.userName = userName; 
this.passWord = passWord; 
this.sex = sex; 
this.city = city; 
this.hobby = hobby; 
} 
@Override 
public String toString() { 
// TODO Auto-generated method stub 
return this.userName + "," + this.passWord + "," + this.sex + "," 
+ this.city + "," + this.hobby; 
} 
}

(6)Register.java(这部分代码是注册界面的实现)

package com.example.minitwittersimulate; 
import com.example.flashscreendemo.R; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.view.View; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import android.widget.Spinner; 
import android.widget.Toast; 
public class Register extends Activity { 
EditText etUser, etPassw, etRePassw; 
RadioButton rbMale, rbfaMale; 
CheckBox cbRead, cbTourist, cbPlayGame; 
Spinner spCity; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_register); 
init(); 
} 
private void init() { 
// TODO Auto-generated method stub 
etUser = (EditText) findViewById(R.id.etUser); 
etPassw = (EditText) findViewById(R.id.etPassw); 
etRePassw = (EditText) findViewById(R.id.etRePassw); 
rbMale = (RadioButton) findViewById(R.id.rbMale); 
rbfaMale = (RadioButton) findViewById(R.id.rbfaMale); 
cbRead = (CheckBox) findViewById(R.id.cbRead); 
cbTourist = (CheckBox) findViewById(R.id.cbTourist); 
cbPlayGame = (CheckBox) findViewById(R.id.cbPlayGame); 
spCity = (Spinner) findViewById(R.id.spCity); 
} 
public void onclick(View view) { 
switch (view.getId()) { 
case R.id.btRegister: 
String userName = etUser.getText().toString(); 
if (TextUtils.isEmpty(userName)) { 
Toast.makeText(this, "用户名不能为空", 2000).show(); 
return; 
} 
String passW = etPassw.getText().toString(); 
if (TextUtils.isEmpty(passW)) { 
etPassw.setError("密码不能为空"); 
return; 
} 
String rePassw = etRePassw.getText().toString(); 
if (TextUtils.isEmpty(rePassw)) { 
etRePassw.setError("确认密码不能为空"); 
return; 
} 
if (!passW.equals(rePassw)) { 
Toast.makeText(this, "两次密码不一致", 2000).show(); 
return; 
} 
char sex; 
if (rbMale.isChecked()) { 
sex = rbMale.getText().charAt(0); 
} else { 
sex = rbfaMale.getText().charAt(0); 
} 
StringBuffer s = new StringBuffer(); 
if (cbRead.isChecked()) { 
s.append(cbRead.getText().toString() + ","); 
} 
if (cbTourist.isChecked()) { 
s.append(cbTourist.getText().toString() + ","); 
} 
if (cbPlayGame.isChecked()) { 
s.append(cbPlayGame.getText().toString() + ","); 
} 
String city = spCity.getSelectedItem().toString(); 
User user = new User(userName, passW, sex, 
s.toString().equals("") ? "" : s.toString().substring(0, 
s.length()), city); 
Toast.makeText(this, "用户注册信息:" + user.toString(), 100000).show(); 
Intent intent = new Intent(Register.this, LoginActivity.class); 
startActivity(intent); 
finish(); 
break; 
case R.id.btEixt: 
finish(); 
break; 
case R.id.btReturn: 
Intent intent1 = new Intent(Register.this, LoginActivity.class); 
startActivity(intent1); 
finish(); 
break; 
} 
} 
}

(7)MainActivity.java(这部分代码实现的是点击“登录”按钮后跳转到的界面)

package com.example.minitwittersimulate; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import com.example.flashscreendemo.R; 
public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 
} 

以上所述是小编给大家介绍的Android实现闪屏及注册和登录界面之间的切换效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Android Path绘制贝塞尔曲线实现QQ拖拽泡泡

    Android Path绘制贝塞尔曲线实现QQ拖拽泡泡

    本文主要介绍Android Path绘制贝塞尔曲线,这里整理相关资料并运用贝塞尔曲线实现QQ拖拽泡泡的示例,有兴趣的小伙伴可以参考下
    2016-09-09
  • Flutter实现Text完美封装

    Flutter实现Text完美封装

    本文详细讲解了Flutter实现Text完美封装,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以收藏下,方便下次浏览观看
    2021-11-11
  • Android基于socket实现的简单C/S聊天通信功能

    Android基于socket实现的简单C/S聊天通信功能

    这篇文章主要介绍了Android基于socket实现的简单C/S聊天通信功能,结合实例形式分析了Android使用socket实现客服端与服务器端数据的发送与接收处理技巧,需要的朋友可以参考下
    2016-10-10
  • Android编程实现简单设置按钮颜色的方法

    Android编程实现简单设置按钮颜色的方法

    这篇文章主要介绍了Android编程实现简单设置按钮颜色的方法,涉及Android控件布局与属性设置相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • Android使用xUtils3.0实现文件上传

    Android使用xUtils3.0实现文件上传

    这篇文章主要为大家详细介绍了Android使用xUtils3.0实现文件上传的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android解析JSON格式数据的两种方式(JSONObject和Gson)

    Android解析JSON格式数据的两种方式(JSONObject和Gson)

    json数据的解析相对而言,还是比较容易的,实现的代码也十分简单,下面这篇文章主要给大家介绍了关于Android解析JSON格式数据的两种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Android实现通话自动录音

    Android实现通话自动录音

    这篇文章主要为大家详细介绍了Android实现通话自动录音,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Android APP启动时间优化介绍

    Android APP启动时间优化介绍

    大家好,本篇文章主要讲的是Android APP启动时间优化介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • OpenGL关于glStencilFuncSeparate()和glStencilFunc()函数的区别讲解

    OpenGL关于glStencilFuncSeparate()和glStencilFunc()函数的区别讲解

    今天小编就为大家分享一篇OpenGL关于glStencilFuncSeparate()和glStencilFunc()函数的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • native.js获取手机硬件基本信息实例代码android版

    native.js获取手机硬件基本信息实例代码android版

    本文为大家分享了native.js获取手机硬件基本信息实例代码android版包括手机MAC地址,手机内存大小,手机存储空间大小,手机CPU信息等手机硬件基本信息
    2018-09-09

最新评论