android启动第一个界面时即闪屏的核心代码(3种方式)
来源:互联网 发布:软件英文名称 编辑:程序博客网 时间:2024/06/05 23:39
闪屏,就是SplashScreen,也可以说是启动画面,就是启动的时候,闪(展示)一下,持续数秒后,自动关闭。
toAlpha:结束时刻的透明度,取值范围0~1。
第一种方式:
android的实现非常简单,使用Handler对象的postDelayed方法就可以实现。在这个方法里传递一个Runnable对象和一个延迟的时间。该方法实现了一个延迟执行的效果,延迟的时间由第2个参数指定,单位是毫秒。第一个参数是Runnable对象,里面包含了延迟后需要执行的操作。
具体的实现步骤为:
1.实现一个闪屏窗体,设置背景图片等。
2.实现主窗体,当闪屏结束后会启动该窗体。
2.在闪屏窗体里的onCreate方法重载里,处理一个延迟执行页面跳转的操作。方法如上面的代码所示。在这里跳转到程序的主窗体。
这里只给出核心代码,ui很简单就不给了
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.view.Menu;public class StarActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_star); // 闪屏的核心代码 new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(StarActivity.this, MainActivity.class); // 从启动动画ui跳转到主ui startActivity(intent); overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); StarActivity.this.finish(); // 结束启动动画界面 } }, 4000); // 启动动画持续3秒钟 }}
第二种方式:
通过AlphaAnimation 动画,窗口的动画效果,淡入淡出,有些游戏的欢迎动画,logo的淡入淡出效果就使用AlphaAnimation。
【基本语法】public AlphaAnimation (float fromAlpha, float toAlpha)
toAlpha:结束时刻的透明度,取值范围0~1。
案例描述:由浅入深的显示一张logo图片,显示3秒钟后跳转到登录页面。
准备的素材:一张logo图片,一张按钮背景图片
logo布局文件logo.xml如下:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:gravity="center"
- android:orientation="vertical" >
- <ImageView
- android:id="@+id/logo"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/splash" />
- </LinearLayout>
LogoActivity代码如下:
- public class LogoActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 取消标题
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- // 取消状态栏
- this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- setContentView(R.layout.logo);
- ImageView logoImage = (ImageView) this.findViewById(R.id.logo);
- AlphaAnimation alphaAnimation = new AlphaAnimation(0.1f, 1.0f);
- alphaAnimation.setDuration(3000);
- logoImage.startAnimation(alphaAnimation);
- alphaAnimation.setAnimationListener(new AnimationListener() {
- @Override
- public void onAnimationStart(Animation animation) {
- }
- @Override
- public void onAnimationRepeat(Animation animation) {
- }
- @Override
- public void onAnimationEnd(Animation animation) {
- Intent intent = new Intent();
- intent.setClass(LogoActivity.this, LoginActivity.class);
- startActivity(intent);
- finish();
- }
- });
- }
- }
第三种方式:
Observable.timer(2000, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread()). subscribe(new Action1<Long>() { @Override public void call(Long aLong) { startActivity(new Intent(SplashActivity.this, MainActivity.class)); overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); finish(); } });
0 0
- android启动第一个界面时即闪屏的核心代码(3种方式)
- android启动第一个界面时即闪屏的核心代码(两种方式)
- android启动界面的两种方式
- 第一个 android 的界面程序
- WPF应用程序设置启动时自动打开的第一个窗口的几种方式
- WPF应用程序设置启动时自动打开的第一个窗口的几种方式
- FREERTOS的启动第一个任务代码分析
- android 启动第一个程序
- 定制android主界面。让你自己写的Android的Launcher成为系统中第一个启动的,也是唯一的Launcher.
- 定制android主界面。让你自己写的Android的Launcher成为系统中第一个启动的,也是唯一的Launcher.
- 进入第一个Android应用界面
- android设置开机启动第一个运行的apk
- 学习Android之第一个小程序及点击事件的几种方式
- 第一个有界面的程序
- 第一个带界面的Windows程序
- Android开发之第一个小项目--我的MP3播放器之主界面的实现(二)
- Android开发之第一个小项目--我的MP3播放器之播放界面的实现(三)
- android app 启动第一个页面
- typedef函数指针
- 分组背包问题:不超过N元钱
- poj3255
- NodeJS基本
- 自定义浏览器滚动条样式
- android启动第一个界面时即闪屏的核心代码(3种方式)
- hdfs性能调优
- Spring Security入门篇——标签sec:authorize的使用
- CentOS7下安装配置zookeeper集群
- get_object_vars
- 4.创建Testng测试工程
- 解决winform窗体闪烁问题
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- 欢迎使用CSDN-markdown编辑器