splash页面定时跳转,引导页倒计时功能开发

来源:互联网 发布:淘宝刷评价兼职 编辑:程序博客网 时间:2024/05/21 06:54

splash页面定时跳转,引导页倒计时功能开发

一、概述

[TOC]
思绪乱飞 - - 1030

一直以来都以为都不怎么在意更新博客,最近电脑加了固态硬盘,整理内存资料时发现,资料乱的一堆,乱七八糟,个人也有喜欢收集资料的癖好,看过的没看过的,都没有总结过,整理的好累,就想提炼出来放一个地方,刚巧看到当年同时出来的 同学现在都已经写了好多篇日志,总结分类条理巨清晰,心里甚是羡慕,决心也开始整理博客,梳理内容!,当然如果能帮助到各位看官,那就更开心了,当然,也欢迎多多指教!

最近看到有好多app突然就变了风格,卡片式交互操作突然就多了起来,app启动页面也都换成了倒计时+跳过,今天就随手写了一个,有需要的可以直接拿走!! 下面代码区有完整版

首先先来看效果

这里写图片描述 这里写图片描述


右下角其实是button 按钮啦
下面直接贴代码 :
splashActivity 布局的代码:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/bg_home"    android:orientation="vertical">    <Button        android:onClick="onclick"        android:minWidth="60dp"        android:textColor="@android:color/white"        android:minHeight="28dp"        android:background="@drawable/btn_selector"        android:text="跳过"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginRight="22dp"        android:layout_marginBottom="36dp"        android:id="@+id/button"        android:gravity="center"        android:layout_alignParentBottom="true"        android:layout_alignParentRight="true"        android:layout_alignParentEnd="true" /></RelativeLayout>

当然,为了好看,我在字体颜色和Button背景上都用了selector,要精致嘛!哈哈哈!
下面贴出 selector代码

btn_selector.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/btn_pressed_color" android:state_pressed="true" />    <item android:drawable="@drawable/btn_normal_color" android:state_pressed="false" /></selector>

selector 中使用的是xml定义的shape图形,上代码:

btn_pressed_color.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <stroke android:color="@android:color/white" android:width="1dp" />    <corners android:radius="3dp" />    <size android:height="10dp" android:width="10dp" />    <solid android:color="#55000000" /></shape>

btn_nomal_color.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <stroke android:color="@android:color/white" android:width="1dp" />    <corners android:radius="3dp" />    <size android:height="10dp" android:width="10dp" />    <solid android:color="#5aaaaaaa" /></shape>

xml 布局搞完了,下面开始上真的代码!!

下面贴 activity内的代码,当然,也可以放在Fragment 中,毕竟本人也这样做过!

SplashActivity.java

package top.angame.mnews;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.view.View;import android.widget.Button;import java.util.Timer;import java.util.TimerTask;import top.angame.mnews.Utils.ActivityUtils;/** * Created by WU on 2016/10/28. */public class SplashActivity extends Activity {    //设定倒计时时长 n 单位 s    private int time = 5;    //初始化 Handler    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case 0:                    btn_skip.setText("跳过(" + time + ")");                    break;                case 1:                    startActivity(new Intent(SplashActivity.this, MainActivity.class));                    finish();            }            super.handleMessage(msg);        }    };    private Button btn_skip;    private Timer timer;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        ActivityUtils.trastate(this);        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_splash);        btn_skip = (Button) findViewById(R.id.button);    }    /** skip Button 点击事件 */    public void onclick(View view) {        handler.sendEmptyMessage(1);    }    @Override    protected void onResume() {        timer = new Timer(true);        timer.schedule(new TimerTask() {            @Override            public void run() {                time--;                handler.sendEmptyMessage((time == 0 ? 1 : 0));            }        }, 1000, 1000);        super.onResume();    }    @Override    protected void onPause() {        timer.cancel();        super.onPause();    }}

到此,就 ok 了,是不是很简单呢!!!

找 UI 拿一张高逼格的背景图,就彻底 ok了,顺便勾搭一下漂亮的UI妹子 说不定连写代码的心情都高涨了呢!!!

1 0