Android SplashActivity学习笔记

2020-05-18  本文已影响0人  fordG

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>
上一篇下一篇

猜你喜欢

热点阅读