Android 設置應用啓動動畫

流程如下:

  • 導入一張圖片到Android項目中去
  • 新建一個welcomeActivity
  • 修改ActivityManifest文件

1.導入一張圖片到Android項目

找到一張圖片,粘貼複製到項目下drawable目錄下(注意圖片的名字,只能是小寫字母、數字和下劃線組成)
在這裏插入圖片描述

2.新建welcomeActivity

2.1 修改佈局文件activity_welcome.xml(添加一個ImageView)

<?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=".WelcomeActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        android:scaleX="1.2"
        android:scaleY="1.2"
        android:src="@drawable/welcome_image"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

2.1 修改activity文件WelcomeActivity

package com.example.gca

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import androidx.core.view.ViewCompat
import androidx.core.view.ViewPropertyAnimatorListener
import kotlinx.android.synthetic.main.activity_welcome.*

class WelcomeActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_welcome)

		//設置圖片動畫
        ViewCompat.animate(imageView).apply {
        	//縮放,變成1.0倍
            scaleX(1.0f)
            scaleY(1.0f)
            //動畫時常1秒
            duration = 1000
            //動畫監聽
            setListener(object : ViewPropertyAnimatorListener {
                override fun onAnimationEnd(view: View?) { //動畫結束
                    //進入主界面,並結束掉該頁面
                    startActivity(Intent(this@WelcomeActivity, MainActivity::class.java))
                    finish()
                }

                override fun onAnimationCancel(view: View?) {
                }

                override fun onAnimationStart(view: View?) {
                }
            })
        }
    }
}

3.修改ActivityManifest文件

這裏要做的就是新建一個style(全屏)給WelcomeActivity,同時讓WelcomeActivity成爲啓動界面

3.1新建style

在res/values/styles.xml文件內新建一個style(添加以下代碼)

<style name="AppTheme.FullScreen">  //style名字
    <item name="windowNoTitle">true</item>  //不顯示標題
    <item name="android:windowFullscreen">true</item>  //全屏
</style>

完成如下:(添加之後的樣子)

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="AppTheme.FullScreen">
        <item name="windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>
</resources>

3.1修改ActivityManifest文件

style(全屏)給WelcomeActivity,同時讓WelcomeActivity成爲啓動界面,修改前:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dist="http://schemas.android.com/apk/distribution"
    package="com.example.gca">

    <dist:module dist:instant="true" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".WelcomeActivity"></activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

修改後:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dist="http://schemas.android.com/apk/distribution"
    package="com.example.gca">

    <dist:module dist:instant="true" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"></activity>
        <activity android:name=".WelcomeActivity"
            android:theme="@style/AppTheme.FullScreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

如果覺得有用,點個贊吧

發佈了92 篇原創文章 · 獲贊 40 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章