Android 如何实现欢迎界面(Splash Screen)
2018-01-11 11:27
731 查看
启动界面 先记一下
代码报错: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
splash_screen.xml
项目清单文件:
这里附一张,老师给的提醒:
后续(过了一个下午):
查看了一些资料,如果按照原本计划,应该是一个启动页面后再弹出登录注册框。。 为了多方面的考虑,想了一下,如果今后有类似的app做引导页,其实也是可以采用 三张图片滚动的形式,再跳转主界面,这样也是可以的。
一张启动页面用Splash Screen可以做出来,控制持续的时间 再跳转可以的。
我找到了简书上用RxJava做的引导页,尝试了一下,感觉用户体验应该相对来说也是可以,只是再加长了进入主界面的时间,多了缓冲和视觉上的效果。
这是现在做的一个实训项目,但是目前来说写这篇文章意义不大,只是一个拓展吧。以作今后开发之需。
RxJava实践之打造酷炫启动页
两步打造华丽丽的Android引导页(用到RxJava)
Android启动页优化,去黑屏实现秒启动
这是代码地址
代码报错: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; @Override protected 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"?> <LinearLayout xmlns: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"> <ImageView android: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"; @Override protected 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(); } //执行后台任务 @Override protected 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; } //任务完成时调用 @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); //讲获取的数据通过Intent传送给MainActivity Intent intent = new Intent(SplashScreenActivity.this,MainActivity.class); //注意,intent传递图片时,图片对象大小不应该超过40k intent.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"> <ImageView android:id="@+id/appImage" android:src="@mipmap/personal_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android: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"/> <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=".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; @Override protected 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() { @Override public void run() { // 启动登录窗口 startActivity(new Intent(SplashScreenActivity.this, LoginActivity.class)); // 关闭启动画面 finish(); } }, DELAY_TIME); } }
后续(过了一个下午):
查看了一些资料,如果按照原本计划,应该是一个启动页面后再弹出登录注册框。。 为了多方面的考虑,想了一下,如果今后有类似的app做引导页,其实也是可以采用 三张图片滚动的形式,再跳转主界面,这样也是可以的。
一张启动页面用Splash Screen可以做出来,控制持续的时间 再跳转可以的。
我找到了简书上用RxJava做的引导页,尝试了一下,感觉用户体验应该相对来说也是可以,只是再加长了进入主界面的时间,多了缓冲和视觉上的效果。
这是现在做的一个实训项目,但是目前来说写这篇文章意义不大,只是一个拓展吧。以作今后开发之需。
RxJava实践之打造酷炫启动页
两步打造华丽丽的Android引导页(用到RxJava)
Android启动页优化,去黑屏实现秒启动
这是代码地址
相关文章推荐
- Android UI常用实例 如何实现欢迎界面(Splash Screen)
- Android UI常用实例 如何实现欢迎界面(Splash Screen)
- android 如何定制桌面(home screen)界面shortcut
- android实现开机欢迎界面
- android 如何实现登陆界面的记住密码功能
- Android开发:巧用延迟实现欢迎界面 及 摄像头预览后绘制背景标示(如坐标系、矩形框)
- 如何创建启动界面Splash Screen
- android 实现欢迎界面
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 详解如何实现一个基本的Android界面--讲的很好
- 【Android 复习】:第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- Android仿人人客户端(v5.7.1)——欢迎和导引界面的编码实现
- Android如何实现友好的界面显示效果
- 最简单的Splash Screen在Android中的实现
- android应用程序安全卫士——1、splash界面实现方法
- android几种欢迎界面的实现