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

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 了,是不是很简单呢!!!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值