当前位置:   article > 正文

Android---启动页+闪屏页_android 启动页

android 启动页

目录

启动页

闪屏页


 

启动页

app 在进入首页面的过程中,都会线加载一张图片然后再进入闪屏页。这样,可以给用户很好的体验。

作用:避免加载白屏页面,进行业务的预处理(网络检测、数据预加载...)

界面组成:Logo、背景图、版本号等。

步骤1: src-->main-->res-->values-->themes-->themes.xml 下新建一个 style。设置启动页

  1. <!-- 设置启动页的 style -->
  2. <style name="Theme.Pager" parent="Theme.ScreenAdapter" >
  3. <item name="android:windowBackground">@drawable/dp</item> // 设置启动页背景图片
  4. <item name="android:windowFullscreen">true</item> // 设置背景图片为全屏显示
  5. <item name="android:navigationBarColor">@android:color/transparent</item> // 设置导航栏透明
  6. </style>

步骤2:在 AndroidManifest.xml 里设置这个主题

步骤3: 如果就只是这样设置的话,我们会发现,在启动页完成并到达主页之后,这个背景图片还存在,所有我们需要重新将app的主题设置成原来的那样。所以,我们在 onCreate 方法里设置原主题。

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. setTheme(R.style.Theme_StartPagerTest); // 设置为原主题
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_main);
  6. }

闪屏页

作用:广告、营销推广。

界面组成:广告、跳过(倒计时按钮)。

步骤1:新建 SplashActivity.java 。并在 AndroidManifest.xml 里将启动页设置为 SplashAcrivity。

 步骤2:activity_splash.xml

布局中有一个 Button,用来实现点击”跳过“的功能。可以在倒计时内提前跳过闪屏页。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:background="@drawable/img"
  8. tools:context=".SplashActivity">
  9. <TextView
  10. android:layout_width="match_parent"
  11. android:layout_height="match_parent"
  12. android:textSize="50dp"
  13. android:textColor="@color/white"
  14. android:text="My App"
  15. tools:ignore="HardcodedText,SpUsage"
  16. android:gravity="center"
  17. />
  18. <Button
  19. android:id="@+id/button"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:text="跳过"
  23. android:layout_gravity="right"
  24. android:layout_marginTop="35dp"
  25. android:layout_marginRight="35dp"
  26. tools:ignore="HardcodedText,RtlHardcoded" />
  27. </FrameLayout>

步骤3:SplashActivity.java

  1. package com.example.screenadapter;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.annotation.SuppressLint;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.os.CountDownTimer;
  7. import android.os.Handler;
  8. import android.widget.Button;
  9. public class SplashActivity extends AppCompatActivity {
  10. private Button button; // "跳过" 按钮
  11. private Handler handler = new Handler();
  12. TimeCount timeCount;
  13. private Runnable runnable = new Runnable() {
  14. @Override
  15. public void run() {
  16. toMainActivity();
  17. }
  18. };
  19. /**
  20. *TODO 闪屏页 --》 最开始功能界面(首页面)
  21. */
  22. private void toMainActivity() {
  23. startActivity(new Intent(this, MainActivity.class));
  24. finish();
  25. }
  26. @Override
  27. protected void onCreate(Bundle savedInstanceState) {
  28. setTheme(R.style.Theme_ScreenAdapter);
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_splash);
  31. initViews();
  32. //延迟 3s 发送,即当用户不主动点击跳过时,3s 后自动结束
  33. handler.postDelayed(runnable, 3000);
  34. timeCount = new TimeCount(4000, 1000);
  35. timeCount.start();
  36. }
  37. /**
  38. * 初始化 View
  39. */
  40. private void initViews() {
  41. button = findViewById(R.id.button);
  42. button.setOnClickListener(v -> {
  43. toMainActivity();
  44. });
  45. }
  46. // 倒计时计时器
  47. class TimeCount extends CountDownTimer{
  48. public TimeCount(long millisInFuture, long countDownInterval) {
  49. super(millisInFuture, countDownInterval);
  50. }
  51. @SuppressLint("SetTextI18n")
  52. @Override
  53. public void onTick(long l) {
  54. // 设置倒计时
  55. button.setText(l / 1000 + "s");
  56. }
  57. @Override
  58. public void onFinish() {
  59. // 移除掉 runnable 方法
  60. handler.removeCallbacks(runnable);
  61. }
  62. }
  63. }

其中,toMainActivity() 方法里实现了由 SplashActivity(闪屏页)跳转到 MainActivity(首页面)。我们在 button(跳过)按钮和”倒计时“结束时触发它。当用户点击”跳过“ 按钮,可以提前结束倒计时进入首页面,也可以等到倒计时结束时自动跳转到首页面。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/144724
推荐阅读