android项目之启动页面跳转

尊重原创,转载请注明:From zsml2016(http://blog.csdn.net/qq_29269233)Power byzsml2016侵权必究! 

        从我所做的项目来看,几乎都少不了开始页面,启动页面的作用能够打广告、发公告、做缓存处理、更新数据等等!Android实现开始页面的跳转,就是打开一个Android手机APP的欢迎界面后跳转到指定界面,下面就让我简单介绍下比较常用的开始页面的跳转方法吧。

一、在onCreate里设置个Timer,然后建立Intent指向你要调用的Activity。设置Timer 任意秒后执行startActivity即可!(Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,它可以计划执行一个任务一次或反复多次)


  final Intent it = new Intent(this, Activity1.class); //你要转向的Activity   
        Timer timer = new Timer(); 
        TimerTask task = new TimerTask() {  
            @Override  
            public void run() {   
            startActivity(it); //执行  
             } 
         };
        timer.schedule(task, 1000 * 10); //10秒后


二、利用子线程在run方法中设置跳转,用Handler来执行。


public class WelcomeActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
	// TODO Auto-generated method stub
	super.onCreate(savedInstanceState);
	setContentView(R.layout.welcome);
	new Handler().postDelayed(r, 1000);// 1秒后关闭,并跳转到主页面
}
  Runnable r = new Runnable() {
  @Override
  public void run() {
  // TODO Auto-generated method stub
  Intent intent = new Intent();
  intent.setClass(WelcomeActivity.this, MainActivity.class);
  startActivity(intent);
  finish();
      }
   };
}




三、以动画形式(旋转、缩放等)作为开始页面,这种方法在项目中也是比较常用的,比第一种方法多了动画集,具体看代码注释!


开始动画页面布局splashMain.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
     <ImageView
        android:id="@+id/iv_splash_mainview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/splash_bg"
        android:src="@drawable/splash_sheep_n" />
</LinearLayout>


开始动画页面splashActivity.java

public class splashActivity extends Activity {
	
	private ImageView  iv_mainview;
	private AnimationSet as;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		//去掉标题
		//requestWindowFeature(Window.FEATURE_NO_TITLE);
		initView();// 初始化界面

		startAnimation();//开始播放动画 

		initEvent();//初始化事件
	}

	
	private void initEvent() {
		//1、监听动画播放完的事件,只是一处用到事件就用匿名类对象,多处声明成员变量用 
		as.setAnimationListener(new AnimationListener() {

			@Override
			public void onAnimationStart(Animation animation) {
				
			}

			@Override
			public void onAnimationRepeat(Animation animation) {

			}

			//监听动画播放完
			@Override
			public void onAnimationEnd(Animation animation) {
				
				// 
				Intent main = new Intent(splashActivity .this,MainActivity.class);
				startActivity(main);//主界面
			
				//关闭自己
				finish();
			}
		});
	}

	/**
	 * 开始播放动画:旋转,缩放,渐变
	 */
	private void startAnimation() {
		// false  代表动画集中每种动画都采用各自的动画插入器(数字函数)
		as = new AnimationSet(false);

		//旋转动画,锚点
		RotateAnimation ra = new RotateAnimation(
				0, 360,
				Animation.RELATIVE_TO_SELF, 0.5f,
				Animation.RELATIVE_TO_SELF,0.5f);//设置锚点为图片的中心点
		// 设置动画播放时间
		ra.setDuration(2000);
		ra.setFillAfter(true);//动画播放完之后,停留在当前状态 

		// 添加到动画集
		as.addAnimation(ra);

		// 渐变动画
		AlphaAnimation aa = new AlphaAnimation(0, 1);//由完全透明到不透明 
		// 
		aa.setDuration(2000);
		aa.setFillAfter(true);//

		// 
		as.addAnimation(aa);

		// 缩放动画
		ScaleAnimation sa = new ScaleAnimation(
				0, 1, 0, 1,
				Animation.RELATIVE_TO_SELF, 0.5f, 
				Animation.RELATIVE_TO_SELF, 0.5f);
		// 
		sa.setDuration(2000);
		sa.setFillAfter(true);//

		// 
		as.addAnimation(sa);

		// 播放动画
		iv_mainview.startAnimation(as);

		// 动画播完进入下一个界面 :向导界面或者主界面
        //1、监听动画播放完的事件
		

	}

	private void initView() {
		// 设置主界面
		setContentView(R.layout.onemain);

		// 获取背景图片
		iv_mainview = (ImageView) findViewById(R.id.iv_splash_mainview);

	}

		
	
	
}



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值