zoukankan      html  css  js  c++  java
  • Android开发欢迎页点击跳过倒计时进入主页

    页面效果:

    没点击跳过自然进入主页,点击跳过之后立即进入主页HelloWorld

    实现步骤:

    1、欢迎页布局activity_sp.xml放一张背景图(图片随你便啦)再放一个盛放倒计时的TextView。

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:app="http://schemas.android.com/apk/res-auto"
     4     xmlns:tools="http://schemas.android.com/tools"
     5     android:layout_width="match_parent"
     6     android:layout_height="match_parent"
     7     android:background="@drawable/a">
     8  
     9     <RelativeLayout
    10         android:layout_width="match_parent"
    11         android:layout_height="wrap_content">
    12  
    13         <TextView
    14             android:id="@+id/tv"
    15             android:layout_width="wrap_content"
    16             android:layout_height="wrap_content"
    17             android:layout_alignParentRight="true"
    18             android:layout_marginRight="20dp"
    19             android:layout_marginTop="10dp"
    20             android:textSize="20sp" />
    21     </RelativeLayout>

     2、新建一个Activity用来关联我们的layout布局文件

     1 package com.cwj.test;
     2  
     3 import android.content.Intent;
     4 import android.os.Handler;
     5 import android.support.v7.app.AppCompatActivity;
     6 import android.os.Bundle;
     7 import android.view.View;
     8 import android.view.WindowManager;
     9 import android.widget.TextView;
    10  
    11 import java.util.Timer;
    12 import java.util.TimerTask;
    13  
    14 public class SpActivity extends AppCompatActivity implements View.OnClickListener {
    15  
    16     private int recLen = 5;//跳过倒计时提示5秒
    17     private TextView tv;
    18     Timer timer = new Timer();  //定义一个计时器
    19     private Handler handler;    
    20     private Runnable runnable;
    21  
    22     @Override
    23     protected void onCreate(Bundle savedInstanceState) {
    24         super.onCreate(savedInstanceState);
    25         //定义全屏参数
    26         int flag= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    27         //设置当前窗体为全屏显示
    28         getWindow().setFlags(flag, flag);
    29         setContentView(R.layout.activity_sp);
    30         initView();
    31         timer.schedule(task, 1000, 1000);//等待时间一秒,停顿时间一秒
    32         /**
    33          * 正常情况下不点击跳过
    34          */
    35         handler = new Handler();   
    36         handler.postDelayed(runnable = new Runnable() {
    37             @Override
    38             public void run() {
    39                 //从闪屏界面跳转到首界面
    40                 Intent intent = new Intent(SpActivity.this, MainActivity.class);
    41                 startActivity(intent);
    42                 finish();
    43             }
    44         }, 5000);//延迟5S后发送handler信息
    45  
    46     }
    47  
    48     private void initView() {
    49         tv = findViewById(R.id.tv);//跳过
    50         tv.setOnClickListener(this);//跳过监听
    51     }
    52  
    53     TimerTask task = new TimerTask() {
    54         @Override
    55         public void run() {
    56             runOnUiThread(new Runnable() { // UI thread
    57                 @Override
    58                 public void run() {
    59                     recLen--;
    60                     tv.setText("跳过 " + recLen);
    61                     if (recLen < 0) {
    62                         timer.cancel();
    63                         tv.setVisibility(View.GONE);//倒计时到0隐藏字体
    64                     }
    65                 }
    66             });
    67         }
    68     };
    69  
    70     /**
    71      * 点击跳过
    72      */
    73     @Override
    74     public void onClick(View view) {
    75         switch (view.getId()) {
    76             case R.id.tv:
    77                 //从闪屏界面跳转到首界面
    78                 Intent intent = new Intent(SpActivity.this, MainActivity.class);
    79                 startActivity(intent);
    80                 finish();
    81                 if (runnable != null) {
    82                     handler.removeCallbacks(runnable);
    83                 }
    84                 break;
    85             default:
    86                 break;
    87         }
    88     }

    3、我们还可以对样式进行少许的修改,我们平常见到的欢迎界面是全屏的,所以我们在这里将标题栏隐藏掉

    最简单的方法:

    在AndroidManifest.xml文件中添加

    1 android:theme="@android:style/Theme.NoTitleBar"

    以下是系统自带的一些主题样式,我们也可以对其进行部分修改

    android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框模式 
    android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏 
    android:theme="Theme.Light" 背景为白色 
    android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏 
    android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏 
    android:theme="Theme.Black" 背景黑色 
    android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏 
    android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏 
    android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景 
    android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏 
    android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏 
    android:theme="Translucent"  透明背景
    android:theme="Theme.Translucent.NoTitleBar"  透明背景并无标题
    android:theme="Theme.Translucent.NoTitleBar.Fullscreen"  透明背景并无标题,全屏
    android:theme="Theme.Panel"   面板风格显示
    android:theme="Theme.Light.Panel" 平板风格显示

     参考博客:

    https://blog.csdn.net/juer2017/article/details/79069970

  • 相关阅读:
    手速太慢QAQ
    最短路总结
    放下
    素材收集
    NOI2018旅游记
    -5
    七月
    德国GG了
    本人自传
    bzoj2369
  • 原文地址:https://www.cnblogs.com/liuzeyu12a/p/9942818.html
Copyright © 2011-2022 走看看