免费资源网 – https://freexyz.cn/
没点击跳过自然进入主页,点击跳过之后立即进入主页


1.欢迎页布局activity_sp.xml放一张背景图(图片随你便啦)再放一个盛放倒计时的TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/a">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:textSize="20sp" />
</RelativeLayout>
</LinearLayout>
2.主要java代码
package com.cwj.test;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class SpActivity extends AppCompatActivity implements View.OnClickListener {
private int recLen = 5;//跳过倒计时提示5秒
private TextView tv;
Timer timer = new Timer();
private Handler handler;
private Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//定义全屏参数
int flag= WindowManager.LayoutParams.FLAG_FULLSCREEN;
//设置当前窗体为全屏显示
getWindow().setFlags(flag, flag);
setContentView(R.layout.activity_sp);
initView();
timer.schedule(task, 1000, 1000);//等待时间一秒,停顿时间一秒
/**
* 正常情况下不点击跳过
*/
handler = new Handler();
handler.postDelayed(runnable = new Runnable() {
@Override
public void run() {
//从闪屏界面跳转到首界面
Intent intent = new Intent(SpActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}, 5000);//延迟5S后发送handler信息
}
private void initView() {
tv = findViewById(R.id.tv);//跳过
tv.setOnClickListener(this);//跳过监听
}
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() { // UI thread
@Override
public void run() {
recLen--;
tv.setText("跳过 " + recLen);
if (recLen < 0) {
timer.cancel();
tv.setVisibility(View.GONE);//倒计时到0隐藏字体
}
}
});
}
};
/**
* 点击跳过
*/
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.tv:
//从闪屏界面跳转到首界面
Intent intent = new Intent(SpActivity.this, MainActivity.class);
startActivity(intent);
finish();
if (runnable != null) {
handler.removeCallbacks(runnable);
}
break;
default:
break;
}
}
}
这里style里改了样式,没有标题栏Theme.AppCompat.Light.NoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
补充:
Android程序跳过登录界面直接进入主界面(自动登录)
首先是欢迎界面的代码
public class WelcomeActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
/**
* 延迟3秒进入主界面
*/
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(WelcomeActivity.this,LoginActivity.class);
startActivity(intent);
WelcomeActivity.this.finish();
}
},1000*3);
}
}
接下来是文章的主要内容。实现自动登录的关键是当程序从欢迎界面跳转到登录界面是,在登录界面还没有加载布局文件时判断是否登陆过,从而实现直接跳转到主界面。这里我们采用SharedPreferences来保存登录状态。代码如下:
public class LoginActivity extends Activity{
SharedPreferences sprfMain;
SharedPreferences.Editor editorMain;
Button login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在加载布局文件前判断是否登陆过
sprfMain= PreferenceManager.getDefaultSharedPreferences(this);
editorMain=sprfMain.edit();
//.getBoolean("main",false);当找不到"main"所对应的键值是默认返回false
if(sprfMain.getBoolean("main",false)){
Intent intent=new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
LoginActivity.this.finish();
}
setContentView(R.layout.login);
login= (Button) findViewById(R.id.login);
//这里只是简单用按键模拟登录功能
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(LoginActivity.this,MainActivity.class);
editorMain.putBoolean("main",true);
editorMain.commit();
startActivity(intent);
LoginActivity.this.finish();
}
});
}
}
接下来是实现注销后要重新进入登录界面
public class MainActivity extends AppCompatActivity {
SharedPreferences sprfMain;
SharedPreferences.Editor editorMain;
Button exit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
exit= (Button) findViewById(R.id.exit);
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击注销按键后调用LoginActivity提供的resetSprfMain()方法执行editorMain.putBoolean("main",false);,即将"main"对应的值修改为false
resetSprfMain();
Intent intent=new Intent(MainActivity.this,WelcomeActivity.class);
startActivity(intent);
MainActivity.this.finish();
}
});
}
public void resetSprfMain(){
sprfMain= PreferenceManager.getDefaultSharedPreferences(this);
editorMain=sprfMain.edit();
editorMain.putBoolean("main",false);
editorMain.commit();
}
}
免费资源网 – https://freexyz.cn/
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)