现在,每个App几乎都会有欢迎页。在业务层面来讲,欢迎页的功能主要是Logo的介绍,且是每次打开App都会自动出现。
在此先补充一下动画知识:
1、动画种类: Android动画有四大类,分别是AlphaAnimation、ScaleAnimation、TranslateAnimation和RotateAnimation,功能对照如下:
AlphaAnimation 渐变透明动画效果
ScaleAnimation 渐变缩放动画效果
TranslateAnimation 画面移动动画效果
RotateAnimation 画面旋转动画效果
2 、动画实现方式:动画实现方式有两种,分别是静态设置(xml)和动态设置(java代码)
3、动画模式:动画模式有两种,一种是渐变模式(AlphaAnimation、ScaleAnimation),一种是画面模式(TranslateAnimation、RotateAnimation)。
明确一下具体实现步骤:
第一步:导入图片资源,将已经设计好的图片加载到drawable文件夹下面。(其实在企业中正常要导入mipmap文件夹下面)
第二步:创建新的welcomeActivity,并修改布局文件。
第三步:实现动画效果,并在注册表中将欢迎页设置为第一页。
具体实现如下:
第一步在此省略。
第二步:创建welcomeActivity,并修改布局文件,布局代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/welcomeImv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/welcomepage"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
第三步:使用ObjectAnimator实现动画效果
package com.example.myuniversity;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
public class WelcomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
initView();
}
private void initView(){
//找到执行动画的视图
ImageView welcomeImv = findViewById(R.id.welcomeImv);
//执行动画的对象,动画的类型:平移动画、渐变动画(此处)、缩放动画、旋转动画
//平移动画 translationY translationX
//渐变动画alpha
//缩放动画scalseX scalseY
//旋转动画rotationX rotationY
//0.2f:动画开始的位置
//1.0f:动画结束的位置
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(welcomeImv,"alpha",0.2f,1.0f);
//动画执行时间
objectAnimator.setDuration(2000);
//开始执行动画
objectAnimator.start();
//跳转界面:由欢迎页面进入主页面,因此添加动画监听器(这里采用适配器模式)
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
startActivity(new Intent(WelcomeActivity.this,MainActivity.class));
finish();
}
});
}
}
此处需要说一点的是finish();这个方法,如果此处不将此Activity销毁,可能会出现的情况是,当你退出主页面,以为退出App的时候,会退到欢迎页面上。所以在Intent跳转的时候,要将欢迎页销毁。
在注册表中,将welcome设置为第一页:
<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">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"/>
</application>
至此全部完成,效果图如下: