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

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现