Android开发欢迎页点击跳过倒计时进入主页
没点击跳过自然进入主页,点击跳过之后立即进入主页
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(); } }
到此这篇关于Android开发欢迎页点击跳过倒计时进入主页的文章就介绍到这了,更多相关Android点击跳过倒计时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解Android ScrollView嵌套EditText出现的滑动问题
本篇文章主要介绍了详解ScrollView嵌套EditText出现的滑动问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-01-01Android IPC机制利用Messenger实现跨进程通信
这篇文章主要介绍了Android IPC机制中 Messager 实现跨进程通信的知识,对Android学习通信知识非常重要,需要的同学可以参考下2016-07-07android:layout_gravity和android:gravity的区别
本篇文章主要介绍了android中giavity和layout_gravity的区别。具有很好的参考价值。下面跟着小编一起来看下吧2017-04-04
最新评论