一、项目目录结构
二、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(),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,Animation.relative_TO_PARENT,-1,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); } }
六、 *** 作演示
以上所述是小编给大家介绍的AndroID中闪屏实现方法小结(普通闪屏、倒计时闪屏、倒计时+动画闪屏),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
总结以上是内存溢出为你收集整理的Android中闪屏实现方法小结(普通闪屏、倒计时闪屏、倒计时+动画闪屏)全部内容,希望文章能够帮你解决Android中闪屏实现方法小结(普通闪屏、倒计时闪屏、倒计时+动画闪屏)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)