温馨提示  2024年 6月我们已经停止开发者板块文章内容更新,谢谢来访。存档数据
知识 2023-12-08 30 次阅读

制作App开启页时,你可能会问自己这些问题?

易安卓张团队精心制作了各种精美的APP开启页,通过视觉与互动的巧妙结合,带给用户极佳的体验。他们擅长运用简洁明了的色彩搭配,以及富有创意的设计元素,让每一款APP开启页都独具特色。同时,他们注重用户体验,充分考虑用户的使用习惯,让开启页成为APP的亮点之一。易安卓张团队将继续努力,不断创新,为用户带来更多优秀的APP开启页作品。

App的开启页(Splash Screen)是用户打开应用时的第一个界面,一般用于展示应用的logo和品牌形象等,同时也可以进行一些必要的操作,比如加载数据等。在用户等待启动的时候,开启页能够起到缓冲的作用,让用户感觉应用更为顺畅。

制作开启页的方法主要分为两种

1. 使用ImageView展示图片

可以在layout中添加一个ImageView,设置成全屏并将启动页需要展示的logo或图片赋到该ImageView中。同时在代码中添加一个Handler或CountDownTime计时器,来实现启动页延迟消失并跳转到应用的首页。具体代码如下

```

public class SplashActivity extends AppCompatActivity {

private ImageView mSplashView;

private int mTime = 5000;// 跳过倒计时提示5秒

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE,NO,TITLE);// 设置全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG,FULLSCREEN,

WindowManager.LayoutParams.FLAG,FULLSCREEN);

setContentView(R.layout.activity,splash);

mSplashView = findViewById(R.id.splash,view);

mSplashView.setImageResource(R.drawable.splash);// 加载图片资源

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

Intent intent = new Intent(SplashActivity.this, MainActivity.class);

startActivity(intent);

SplashActivity.this.finish();

}

}, mTime);

}

}

```

2. 使用Lottie动画展示启动页

与ImageView不同,Lottie动画可以实现更加丰富的展示效果,比如动态的加载过程、有趣的互动效果等。使用Lottie展示开启页的具体流程如下

- 添加Lottie库

在项目的build.gradle文件中添加Lottie库的依赖项。

```

dependencies {

implementation 'com.airbnb.安卓:lottie:3.4.0'

}

```

- 添加动画文件

在assets文件夹中添加需要展示的Lottie动画文件,比如animation.json。

- 在layout中使用LottieView

在layout文件中添加一个LottieView,用于展示动画。同时,能够依据实际需要对动画进行设置,比如设置循环播放、设置背景色、设置动画速度等。

```

安卓:id=@+id/animation,view

安卓:layout,width=match,parent

安卓:layout,height=match,parent

app:lottie,fileName=animation.json

app:lottie,loop=false

app:lottie,autoPlay=true

app:lottie,backgroundColor=@color/colorPrimary

app:lottie,speed=1/>

```

- 在代码中控制动画的播放

在SplashActivity中,根据动画播放的时间来控制页面的跳转。动态计算启动页的时间是需要留意的一点,需要确保开机时间少于SplashActivity展示的时间。同时,可以在页面跳转之前暂时停止动画的播放,以使启动页不会过早消失而导致应用的首页未能准备完毕。

```

public class SplashActivity extends AppCompatActivity {

private LottieAnimationView mAnimationView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE,NO,TITLE);// 设置全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG,FULLSCREEN,

WindowManager.LayoutParams.FLAG,FULLSCREEN);

setContentView(R.layout.activity,splash);

mAnimationView = findViewById(R.id.animation,view);

mAnimationView.setAnimation(animation.json);

mAnimationView.loop(false);

mAnimationView.playAnimation();

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

mAnimationView.pauseAnimation();

Intent intent = new Intent(SplashActivity.this, MainActivity.class);

startActivity(intent);

SplashActivity.this.finish();

}

}, mAnimationView.getDuration());

}

}

```

以上就是制作App开启页的两种方法,开发者能够依据自己的需求,选择更为适合自己的实现方案。