<code class="hljs java has-numbering"><span class="hljs-keyword">package</span> com.liuyongxiang.welcome;
有很多应用开启应用时都会有2到3秒的启动界面的动画,当一次安装应用时还要具备有引导的功能的动画
<span class="hljs-keyword">import</span> android.annotation.SuppressLint;
<span class="hljs-keyword">import</span> android.app.Activity;
<span class="hljs-keyword">import</span> android.content.Intent;
<span class="hljs-keyword">import</span> android.content.SharedPreferences;
<span class="hljs-keyword">import</span> android.content.SharedPreferences.Editor;
<span class="hljs-keyword">import</span> android.os.Bundle;
<span class="hljs-keyword">import</span> android.os.Handler;
<span class="hljs-keyword">import</span> android.os.Message;
<span class="hljs-keyword">import</span> android.text.TextUtils;
<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">SplashAty</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Activity</span> {</span>
<span class="hljs-keyword">boolean</span> First = <span class="hljs-keyword">false</span>;
<span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">int</span> GO_HOME = <span class="hljs-number">1000</span>;
<span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">int</span> GO_GUIDE = <span class="hljs-number">1001</span>;
<span class="hljs-comment">// 延迟3秒</span>
<span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">long</span> SPLASH_DELAY_MILLIS = <span class="hljs-number">3000</span>;
<span class="hljs-javadoc">/**
* Handler:跳转到不同界面
*/</span>
<span class="hljs-annotation">@SuppressLint</span>(<span class="hljs-string">"HandlerLeak"</span>)
<span class="hljs-keyword">private</span> Handler mHandler = <span class="hljs-keyword">new</span> Handler() {
<span class="hljs-annotation">@Override</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">handleMessage</span>(Message msg) {
<span class="hljs-keyword">switch</span> (msg.what) {
<span class="hljs-keyword">case</span> GO_HOME:
goHome();
<span class="hljs-keyword">break</span>;
<span class="hljs-keyword">case</span> GO_GUIDE:
goGuide();
<span class="hljs-keyword">break</span>;
}
<span class="hljs-keyword">super</span>.handleMessage(msg);
}
};
<span class="hljs-annotation">@Override</span>
<span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onCreate</span>(Bundle savedInstanceState) {
<span class="hljs-keyword">super</span>.onCreate(savedInstanceState);
setContentView(R.layout.entrance);
init();
}
<span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">init</span>() {
<span class="hljs-comment">// 取得相应的值,如果没有该值,说明还未写入,用true作为默认值</span>
<span class="hljs-comment">// 判断程序第几次运行,如果是第一次运行则跳转到引导界面,否则跳转到主界面</span>
SharedPreferences share = getSharedPreferences(<span class="hljs-string">"First"</span>, MODE_PRIVATE);
String s = share.getString(<span class="hljs-string">"FirstEntrance"</span>, <span class="hljs-keyword">null</span>);
<span class="hljs-keyword">if</span> (First || !TextUtils.isEmpty(s)) {
<span class="hljs-comment">// 使用Handler的postDelayed方法,2秒后执行跳转到主activity</span>
mHandler.sendEmptyMessageDelayed(GO_HOME, SPLASH_DELAY_MILLIS);
} <span class="hljs-keyword">else</span> {
mHandler.sendEmptyMessageDelayed(GO_GUIDE, SPLASH_DELAY_MILLIS);
}
}
<span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">goHome</span>() {
Intent intent = <span class="hljs-keyword">new</span> Intent(SplashAty.<span class="hljs-keyword">this</span>, MainActivity.class);
SplashAty.<span class="hljs-keyword">this</span>.startActivity(intent);
SplashAty.<span class="hljs-keyword">this</span>.finish();
}
<span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">goGuide</span>() {
Intent intent = <span class="hljs-keyword">new</span> Intent(SplashAty.<span class="hljs-keyword">this</span>, WelcomeAty.class);
SplashAty.<span class="hljs-keyword">this</span>.startActivity(intent);
SharedPreferences sharedPreference = getSharedPreferences(<span class="hljs-string">"First"</span>,
MODE_PRIVATE);
Editor editor = sharedPreference.edit();
editor.putString(<span class="hljs-string">"FirstEntrance"</span>, <span class="hljs-string">"FirstEtrance"</span>);
editor.commit();
SplashAty.<span class="hljs-keyword">this</span>.finish();
}
}</code>
android启动界面和引导界面的动画
最新推荐文章于 2022-11-12 16:24:45 发布
本文介绍了一种实现智能启动界面与引导动画的方法,通过使用Handler和SharedPreferences,实现在应用启动时显示2到3秒的动画,并根据用户的首次运行情况跳转到不同的界面。此方法适用于提高用户体验和应用的初次使用指导。
503

被折叠的 条评论
为什么被折叠?



