import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
import utils.ActivitySetting;
public class SplashActivity extends AppCompatActivity {
private Timer timer;
private int count = 6;
private TextView timeText;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash);
initView();
}
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
runOnUiThread(new Runnable() {
@SuppressLint("SetTextI18n")
@Override
public void run() {
// TODO Auto-generated method stub
count--;
if(count > 0){
timeText.setText(count + "\t跳过");
}
if (count == 0) {
timer.cancel();
startActivity();
}
}
});
}
};
private void initView() {
timeText = findViewById(R.id.timer);
timeText.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
timer.cancel();
startActivity();
}
});
timeText.setText(count + "\t跳过");
timer = new Timer();
timer.schedule(task, 2000,1000);
}
private void startActivity() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".SplashActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="@color/tabSColor"
android:text="欢迎页面" />
<LinearLayout
android:layout_width="80dp"
android:layout_height="30dp"
android:background="@drawable/time_shape"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginRight="20dp"
android:layout_marginTop="50dp"
tools:ignore="MissingConstraints"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="123"
android:id="@+id/timer"
android:layout_gravity="center"
android:textColor="@color/White" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
shape drawable xml文件中定义的一个几何图形,定义在res/drawable/目录下,文件名filename称为访问的资源ID
在代码中通过R.drawable.filename进行访问,在xml文件中通过@[package:]drawable/filename进行访问。
-->
<!--
android:shape=["rectangle" | "oval" | "line" | "ring"]
shape的形状,默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)
下面的属性只有在android:shape="ring时可用:
android:innerRadius 尺寸,内环的半径。
android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,
例如,如果android:innerRadiusRatio,表示内环半径等于环的宽度除以5,这个值是可以被覆盖的,默认为9.
android:thickness 尺寸,环的厚度
android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,例如,如果android:thicknessRatio="2",那么环的厚度就等于环的宽度除以2。这个值是可以被android:thickness覆盖的,默认值是3.
android:useLevel boolean值,如果当做是LevelListDrawable使用时值为true,否则为false.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<!-- shape=["rectangle" | "oval" | "line" | "ring"]-->
<!--矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring),默认矩形。-->
<!--
1.圆角
android:radius 整型 下面属性没有指定时的默认半径
android:topLeftRadius 整型 左上角半径
android:topRightRadius 整型 右上角半径
android:bottomLeftRadius 整型 左下角半径
android:bottomRightRadius 整型 右下角半径
-->
<corners
android:radius="8dp"
android:topLeftRadius="5dp"
android:topRightRadius="15dp"
android:bottomLeftRadius="20dp"
android:bottomRightRadius="25dp"
/>
<!--
2.渐变色
android:startColor 颜色值 起始颜色
android:endColor 颜色值 结束颜色
android:centerColor 整型 渐变中间颜色,即开始颜色与结束颜色之间的颜色
android:angle
整型 渐变角度(PS:当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。angle必须为45的整数倍)
android:type
["linear" | "radial" | "sweep"] 渐变类型(取值:linear、radial、sweep)
linear 线性渐变,这是默认设置,radial 放射性渐变,以开始色为中心。sweep 扫描线式的渐变。
android:useLevel
["true" | "false"]如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色
android:gradientRadius
整型 渐变色半径.当android:type="radial" 时才使用。单独使用 android:type="radial"会报错。
android:centerX 整型 渐变中心X点坐标的相对位置
android:centerY 整型 渐变中心Y点坐标的相对位置
-->
<gradient
android:startColor="#66FF0000"
android:endColor="#66FF00FF"
android:angle="45"
/>
<!--
3.内边距,即内容与边的距离
android:left 整型 左内边距
android:top 整型 上内边距
android:right 整型 右内边距
android:bottom 整型 下内边距
-->
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<!--
4.size 图形尺寸
android:width 整型 宽度
android:height 整型 高度
-->
<!-- <size-->
<!-- android:width="180dp"-->
<!-- android:height="100dp"-->
<!-- />-->
<!--
5.内部填充
android:color 颜色值 填充颜色
-->
<!-- 存在填充色的时候看不出渐变的效果,渐变色被覆盖 -->
<!-- <solid-->
<!-- android:color="#ff65b3ff"-->
<!-- />-->
<!--
6.描边
android:width 整型 描边的宽度
android:color 颜色值 描边的颜色
android:dashWidth 整型 表示描边的样式是虚线的宽度, 值为0时,表示为实线。值大于0则为虚线。
android:dashGap 整型 表示描边为虚线时,虚线之间的间隔 即“ - - - - ”
-->
<!-- <stroke-->
<!-- android:width="6dp"-->
<!-- android:color="#dcdcdc"-->
<!-- />-->
</shape>
网友评论