android启动第一个界面时即闪屏的核心代码(两种方式)
闪屏,就是SplashScreen,也能够说是启动画面,就是启动的时候,闪(展示)一下,持续数秒后。自己主动关闭。
第一种方式:
android的实现很easy,使用Handler对象的postDelayed方法就能够实现。在这种方法里传递一个Runnable对象和一个延迟的时间。该方法实现了一个延迟运行的效果,延迟的时间由第2个參数指定。单位是毫秒。
第一个參数是Runnable对象,里面包括了延迟后须要运行的操作。
详细的实现步骤为:
1.实现一个闪屏窗口。设置背景图片等。
2.实现主窗口,当闪屏结束后会启动该窗口。
2.在闪屏窗口里的onCreate方法重载里。处理一个延迟运行页面跳转的操作。方法如上面的代码所看到的。
在这里跳转到程序的主窗口。
这里仅仅给出核心代码。ui非常easy就不给了
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)
fromAlpha:開始时刻的透明度,取值范围0~1。
toAlpha:结束时刻的透明度,取值范围0~1。
public class SplashActivity extends Activity
{
private TextView tv_version;
private LinearLayout ll;
private ProgressDialog progressDialog; private UpdateInfo info;
private String version; private static final String TAG = "Security"; private Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
if(isNeedUpdate(version))
{
showUpdateDialog();
}
};
}; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); tv_version = (TextView) findViewById(R.id.tv_splash_version);
version = getVersion();
tv_version.setText("版本 " + version); ll = (LinearLayout) findViewById(R.id.ll_splash_main);
AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
alphaAnimation.setDuration(2000);
ll.startAnimation(alphaAnimation); progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("正在下载..."); new Thread()
{
public void run()
{
try
{
sleep(3000);
handler.sendEmptyMessage(0);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
};
}.start(); }
事实上在启动界面会包含非常多操作的,比方,获取应用的版本,以及提醒是否更新,等等操作。这里也仅仅给出简单的核心代码。一般也是非常easy理解的。
上述代码仅仅是简单的给出了一些操作,详细的实现没有给出,比方版本,以及更新操作,下载操作等。
假设没有上述的一些操作,仅仅要注意例如以下代码就可以。
ll = (LinearLayout) findViewById(R.id.ll_splash_main);
AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
alphaAnimation.setDuration(2000);
ll.startAnimation(alphaAnimation);
android启动第一个界面时即闪屏的核心代码(两种方式)的更多相关文章
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比--转载
在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新.在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一 ...
- 第一课:Centos下配置java环境变量的两种方式(jdk1.8)
配置java环境(yum安装) 1.查出java1.8的全部版本 yum list java-1.8* 2.安装你需要的java1.8 版本(安装的名字根据查询出来的结果输入这里只是举例) yum i ...
- Android Activity切换(跳转)时出现黑屏的解决方法
在两个Activity跳转时,由于第二个Activity在启动时加载了较多数据,就会在启动之前出现一个短暂的黑屏时间,解决这个问题比较简单的处理方法是将第二个Activity的主题设置成透明的,这样在 ...
- win32 窗口缩放时出现闪屏
今天无意发现之前写的一个小工具在缩放窗口的时候,出现闪屏,主要有两个位置: 工具栏出一闪屏 右侧的控制面板出现闪屏 (这个控制面板与多层元件组合而成) 之前真没注意到这个问题,平时都是最大化/恢复窗口 ...
- 创建安卓模拟器的两种方式及常用Android命令介绍
创建安卓模拟器有以下两种方式: 1>通过图形界面创建,在Eclipse中单击Windows->Android Virtual Device Manager启动图形界面窗口 2>如果用 ...
- Android Studio签名打包的两种方式
签名打包的两种方式: 注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如 ...
- Android跟蓝牙耳机建立连接有两种方式
Android 跟蓝牙耳机建立连接有两种方式. 1. Android 主动跟蓝牙耳机连BluetoothSettings 中和蓝牙耳机配对上之后, BluetoothHeadsetService 会收 ...
- Android中EditText显示明文与密文的两种方式
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图 代码分析 方式一 /**方式一:*/ private void sh ...
- 【Android】adb connect 手机的两种方式
adb支持两种连接Android系统的方式,USB方式及网络方式.一般android手机及android平板默认会设置为USB方式(直接插数据线的方式). 下边介绍两种方式的切换方式. 1. 背景知识 ...
随机推荐
- 数据库连接池和connection的理解
数据库连接池Data Source Pool的理解 1.数据库连接池允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个连接,避免了每个方法里new connection的耗费资源和时间. ...
- 【我所认知的BIOS】—> uEFI AHCI Driver(6) AtaAtapiPassThruSupported的局部变量们
[我所认知的BIOS]-> uEFI AHCI Driver(6) - AtaAtapiPassThruSupported的局部变量们 LightSeed 5/7/2014 前面5个篇文章把EF ...
- http格式(graph)
http请求格式 http请求头 字段 http响应 http响应头字段
- Android系统编译【转】
本文转载自;http://blog.csdn.net/zirconsdu/article/details/8005415 Android编译系统分析 概要 由于android编译系统的复杂和使用了不熟 ...
- BZOJ 3052 树上带修莫队
思路: 就是把带修莫队移到了树上 块的大小开到(n^2/3)/2 比较好- 这是一个卡OJ好题 //By SiriusRen #include <cmath> #include <c ...
- function——函数声明头的提升和预解析
函数: 即function语句的集合,就是将多个语句封装到一起: 函数的执行要会自己遍历,遇见函数 a():执行语句,就要移交控制权,函数执行完毕之后,控制权又移交回来了! 函数的参数要罗列在func ...
- gvim74 提示报错 “无法加载库python27.dll”
官方提供的gvim安装文件默认是支持python和python3两种模式的,编译时带有该选项,但并没有附带对应的运行库和运行环境.所以在本地没有安装python时直接在vim中执行 :py print ...
- SQL Server 检测到基于一致性的逻辑 I/O 错误
背景:新建DB_GZN 恢复数据库备份文件 执行: select * from VI_MPS_PAPLT 错误提示: 消息 824,级别 24,状态 2,第 2 行 SQL Serv ...
- php--方便好用的函数
在写代码的时候经常会遇见各种各样的问题,感觉需要写函数解决,其实php中已经给出指定函数了.这些函数就需要我们日常去了解记忆. 1.获取指点年份中某月的天数 cal_days_in_month() & ...
- Jquery 过滤器(first,last,not,even,odd)的使用和区别
Jquery 过滤器主要有first,last,not,even,odd等等,它们分别表示: 代码如下: $(function(){ $("#menu li:first").cli ...