Android 如何实现欢迎界面(Splash Screen)

2023-12-28 17:08

本文主要是介绍Android 如何实现欢迎界面(Splash Screen),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

启动界面  先记一下  

代码报错:SegmentFault


参考文章:http://blog.csdn.net/shaoduo/article/details/48351585  

安卓判断是否首次进入app,通过判断跳转欢迎引导界面和主界面

http://www.jb51.net/article/36190.htm

Android笔记之:App应用之启动界面SplashActivity的使用


http://blog.csdn.net/xueshanhaizi/article/details/51262528

 Android应用启动界面分析(Starting Window)


http://blog.csdn.net/qq_25047355/article/details/55260980

详解安卓从图表icon点击到APP启动界面加载流程

http://www.jb51.net/article/36190.htm

Android笔记之:App应用之启动界面SplashActivity的使用


https://www.cnblogs.com/xiongbo/archive/2011/05/17/splash.html

创建Android启动界面


https://www.jianshu.com/p/33a798ac3298  你所不知道的。。。


贴:

 MainActivity

public class MainActivity extends Activity {private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView = findViewById(R.id.image);Intent intent = getIntent();if (intent!=null) {//注意Intent传递对象的方式Bitmap bitmap = intent.getParcelableExtra("Image");imageView.setImageBitmap(bitmap);}}
}
ancivity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="net.lm.fire_controller.MainActivity"><ImageViewandroid:id="@+id/image"android:layout_width="fill_parent"android:layout_height="fill_parent" /></LinearLayout>

SplashScreenActivity
package net.lm.fire_controller;import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;/*** Created by Administrator on 2018/1/11.*/public class SplashScreenActivity extends Activity {private static final String url = "http://img.pconline.com.cn/images/upload/upc/tx/wallpaper/1304/30/c0/20394669_1367251284721_320x480.jpg";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.splash_screen);new FetchDataTask().execute(url);}public class FetchDataTask extends AsyncTask<String,Void,Bitmap> {//执行前调用protected  void onPreExecut(){super.onPreExecute();}//执行后台任务@Overrideprotected Bitmap doInBackground(String... strings) {Bitmap bitmap = null;try {//通过传入的图片地址,获取图片HttpURLConnection connection = (HttpURLConnection) (new URL(strings[0])).openConnection();InputStream is = connection.getInputStream();bitmap = BitmapFactory.decodeStream(is);} catch (IOException e) {e.printStackTrace();}return bitmap;}//任务完成时调用@Overrideprotected void onPostExecute(Bitmap result) {super.onPostExecute(result);//讲获取的数据通过Intent传送给MainActivityIntent intent = new Intent(SplashScreenActivity.this,MainActivity.class);//注意,intent传递图片时,图片对象大小不应该超过40kintent.putExtra("Image",result);startActivity(intent);//启动MainActivity后销毁自身finish();}}
}

splash_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/appImage"android:src="@mipmap/personal_logo"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:gravity="center"android:text="Welcome to MS_Movie"android:layout_marginTop="15dp"android:textSize="30sp"android:textColor="#00ACED"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

项目清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="net.lm.fire_controller" > <uses-permission android:name="android.permission.INTERNET"/><applicationandroid: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" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

这里附一张,老师给的提醒:

/**  * 包名:net.hw.driver_test.ui* 类名:SplashScreenActivity* 描述:启动界面* 作者:华卫  * 日期:2017年1月4日  */
package net.hw.driver_test.ui;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import net.hw.driver_test.R;public class SplashScreenActivity extends Activity {	/*** 图标标签*/private ImageView ivIcon;/*** 延迟时间*/private static final int DELAY_TIME = 4000;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 利用布局资源文件设置用户界面setContentView(R.layout.activity_splash_screen);// 通过资源标识获得控件实例ivIcon = (ImageView) findViewById(R.id.iv_icon);// 加载动画配置文件,启动动画ivIcon.startAnimation(AnimationUtils.loadAnimation(this, R.anim.animator));		// 利用消息处理器实现延迟跳转到登录窗口		new Handler().postDelayed(new Runnable() {@Overridepublic void run() {// 启动登录窗口startActivity(new Intent(SplashScreenActivity.this, LoginActivity.class));// 关闭启动画面finish(); }}, DELAY_TIME);}
}

后续(过了一个下午):

查看了一些资料,如果按照原本计划,应该是一个启动页面后再弹出登录注册框。。 为了多方面的考虑,想了一下,如果今后有类似的app做引导页,其实也是可以采用  三张图片滚动的形式,再跳转主界面,这样也是可以的。

一张启动页面用Splash Screen可以做出来,控制持续的时间 再跳转可以的。

我找到了简书上用RxJava做的引导页,尝试了一下,感觉用户体验应该相对来说也是可以,只是再加长了进入主界面的时间,多了缓冲和视觉上的效果。


这是现在做的一个实训项目,但是目前来说写这篇文章意义不大,只是一个拓展吧。以作今后开发之需。

RxJava实践之打造酷炫启动页

两步打造华丽丽的Android引导页(用到RxJava)

Android启动页优化,去黑屏实现秒启动

这是代码地址


这篇关于Android 如何实现欢迎界面(Splash Screen)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/546647

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景