您的位置:首页 > 其它

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

2016-10-31 01:33 302 查看

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 了,是不是很简单呢!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: