android闪屏(普通闪屏、倒计时闪屏、倒计时+动画闪屏)

原创 2017年01月03日 15:05:44

一、项目目录结构

二、activity_main.xml代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.zgs.SplashScreenByXml.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="主页面" />

</RelativeLayout>
三、activity_splashscreen.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"
    android:background="@drawable/splash"
    android:orientation="vertical" 
    android:id="@+id/ll_splashActivity">

    <TextView
        android:id="@+id/tv_countDown"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:layout_marginEnd="20dp"
        android:layout_marginTop="20dp"
        android:textColor="@android:color/white"
        android:textSize="20sp" />

</LinearLayout>
四、SplashScreenActiviy.java代码
package com.zgs.SplashScreenByXml;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.zgs.CommonlySplashScreen.R;

public class SplashScreenActiviy extends Activity {

	private TextView tv_countDown;
	private LinearLayout ll_splashActivity;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// 通过下面两行代码也可实现全屏无标题栏显示activity
		// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
		// this.requestWindowFeature(Window.FEATURE_NO_TITLE);

		setContentView(R.layout.activity_splashscreen);

		tv_countDown = (TextView) findViewById(R.id.tv_countDown);
		ll_splashActivity = (LinearLayout) findViewById(R.id.ll_splashActivity);

		/********************************************************************************
		 * 
		 * 普通闪屏实现方式
		 * 
		 * ******************************************************************************/
		/*new Handler().postDelayed(new Runnable() {
			@Override
			public void run() {
				Intent intent = new Intent(getApplicationContext(), MainActivity.class);
				startActivity(intent);
				finish();
			}
		}, 1000*4);*/


		/********************************************************************************
		 * 
		 * 倒计时闪屏实现方式
		 * 
		 * ******************************************************************************/
		/*MyCountDownTimer mc = new MyCountDownTimer(4000, 1000); 
		mc.start();

		new Handler().postDelayed(new Runnable() {
			@Override
			public void run() {
				Intent intent = new Intent(getApplicationContext(), MainActivity.class);
				startActivity(intent);
				finish();
			}
		}, 1000*4);*/

		/********************************************************************************
		 * 
		 * 倒计时+动画闪屏实现方式
		 * 
		 * ******************************************************************************/
		MyCountDownTimer mc = new MyCountDownTimer(4000, 1000); 
		mc.start();

		new Handler().postDelayed(new Runnable() {
			@Override
			public void run() {
				//左移动画
				TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, -1, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0);  
				ta.setDuration(2000); //设置动画执行的时间
				ta.setFillAfter(true);//当动画结束后 动画停留在结束位置,然后等启动主界面后将其销毁
				ll_splashActivity.startAnimation(ta);

				ta.setAnimationListener(new AnimationListener() {
					@Override
					public void onAnimationStart(Animation arg0) {

					}
					@Override
					public void onAnimationRepeat(Animation arg0) {

					}
					@Override
					public void onAnimationEnd(Animation arg0) {
						Intent intent = new Intent(getApplicationContext(), MainActivity.class);
						startActivity(intent);
						finish();
					}
				});
			}
		}, 1000*4);

	}

	class MyCountDownTimer extends CountDownTimer { 
		//millisInFuture:倒计时的总数,单位毫秒
		//例如 millisInFuture=1000;表示1秒
		//countDownInterval:表示间隔多少毫秒,调用一次onTick方法()
		//例如: countDownInterval =1000;表示每1000毫秒调用一次onTick()
		public MyCountDownTimer(long millisInFuture, long countDownInterval) { 
			super(millisInFuture, countDownInterval); 
		} 
		public void onFinish() { 
			tv_countDown.setText("开始跳转……");
		} 
		public void onTick(long millisUntilFinished) { 
			tv_countDown.setText("倒计时(" + millisUntilFinished / 1000 + ")");
		} 
	}

}
五、MainActivity.java代码
package com.zgs.SplashScreenByXml;

import android.app.Activity;
import android.os.Bundle;
import com.zgs.CommonlySplashScreen.R;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//为了让闪屏结束后更自然的过度到主界面,去除主界面的启动动画,将下面函数的第一个参数设为0即可
		overridePendingTransition(0, 0);
	}
}
六、操作演示

版权声明:本文为【CSDN博主:松一160】原创文章,未经允许不得转载。

Android中使用Handler以及CountDownTimer实现包含倒计时的闪屏页面

上一篇博文《Android中Handler使用浅析》通过实现倒计时闪屏页面的制作引出了Handler的使用方法以及实现原理,博文末尾也提到了实现过程中的Bug,有兴趣的朋友可以点击链接回去看看。今天通...
  • panhouye
  • panhouye
  • 2017年03月04日 15:48
  • 1914

Activity切换闪屏问题

之前项目中遇到打开Activity后黑屏的问题,网上找到解决办法是通过设置theme和style属性可以实现。 http://www.cnblogs.com/sunzn/p/3407078.html ...
  • dj0379
  • dj0379
  • 2016年05月10日 14:21
  • 2396

Android开发 关于避免切换主题时免闪屏的几种方式

Android开发关于避免切换夜间模式避免闪屏的几种方式在activity中调用setTheme来切换夜间模式的方法可能大家有看过相关的文章了,但是调用setTheme设置的主题后界面并没有变化,这时...
  • qq_28385785
  • qq_28385785
  • 2017年04月09日 00:21
  • 1675

android闪屏页广告倒计时

  • 2017年02月11日 12:02
  • 38.81MB
  • 下载

Android中使用Handler以及CountDownTimer实现包含倒计时的闪屏页面

上一篇博文《Android中Handler使用浅析》通过实现倒计时闪屏页面的制作引出了Handler的使用方法以及实现原理,博文末尾也提到了实现过程中的Bug,有兴趣的朋友可以点击链接回去看看。今天通...
  • panhouye
  • panhouye
  • 2017年03月04日 15:48
  • 1914

Android闪屏页圆形倒计时进度条实现

前言现在我们的App中基本都会有闪屏页面,而闪屏页中大多又都会加入广告信息或者我们自己logo等宣传图片的展示,类似如下效果: 思路使用自定义View,通过View的重绘方法Invalidate()...
  • qq_36376387
  • qq_36376387
  • 2017年12月15日 01:15
  • 59

自定义闪屏页广告倒计时view

  • 2017年05月19日 21:01
  • 6KB
  • 下载

有倒计时的闪屏Demo

  • 2016年10月11日 14:18
  • 25.16MB
  • 下载

自定义闪屏页广告倒计时view

如今APP越来越多,我们每天所使用的的软件也越来越多,可是在我们不付费的情况下,App制造商如何变现,实现收入甚至是盈利呢?答案就是在我们打开软件所必须经过的地方穿插广告,当然为了顾及用户的感受,一般...
  • fanxudonggreat
  • fanxudonggreat
  • 2017年05月19日 20:53
  • 322

动画闪屏---启动图片区分中英文环境DEMO

  • 2013年12月30日 00:34
  • 1.3MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android闪屏(普通闪屏、倒计时闪屏、倒计时+动画闪屏)
举报原因:
原因补充:

(最多只允许输入30个字)