博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android添加全屏启动画面
阅读量:6720 次
发布时间:2019-06-25

本文共 1967 字,大约阅读时间需要 6 分钟。

有的Android软件需要在启动的时候显示一个启动画面,可以是一张图或者一些设置什么呢,还有一个好处就是,可以趁机在后台加载数据。

创建启动画面一般有两种方式:
1、建立一个activity,展示启动画面,然后再启动主Activity
2、在主Activity建立一个展示区,然后隐藏掉。
第二个其实更简单,但是这个就展示一次的东西戳在代码里,怎么想都不舒服,而且还可能设计效率问题。所以在项目里还是选用第一种。

首先建立一个Activity,这里明明为HelloActivity,界面就是activity_hello.xml。

接下来修改AndroidManifest.xml文件,把主Activity换成HelloActivity。把之前的主Activity放到下面。

 
 

 

这样HelloActivity就优先启动了,在java文件中编写代码,启动完画面后启动主界面。

在activity_hello.xml中就一个LinearLayout 和一个ImageView,界面很简单,但要保证他全屏,其实我们在设置文件里面已经设置了全屏,在java文件的onCreate方法里也可以设置:

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //设置无标题    requestWindowFeature(Window.FEATURE_NO_TITLE);    //设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,        WindowManager.LayoutParams.FLAG_FULLSCREEN);    setContentView(R.layout.activity_hello);    iv = (ImageView)this.findViewById(R.id.iv);    timer = new Timer(true);    timer.schedule(hello, 200, 150); //延迟200毫秒执行,每150毫秒执行一次}

 

这里面用了一个Timer,用Timer是因为,我的项目启动画面是一个动态的,但是Android又不支持Gif图播放,但项目中就这个地方用到gif,所以就把gif给分割成jpg文件,然后用timer播放,播放完成后就加载新Activity。

编写Timer的TimerTask类,重写run()方法就可以了。

TimerTask hello = new TimerTask(){     @Override    public void run() {        if(index < 5){            index++;            Message msg = new Message();            msg.what = index;            handler.sendMessage(msg);        }else if(index < 8){            index++;  //静止片刻        }else{            //停止播放,启动主Activity
timer.cancel();            Intent intent = new Intent(HelloActivity.this, MainActivity.class);            startActivity(intent);            finish();  //不加这一句,按回退键就会回到欢迎界面不合理。        }    } };

 

 

这里还涉及到了一个消息处理,因为Android不允许随便让其他线程操作UI,但是处理系统消息的Handle却是可以得,所以Timer定时向Handle发送一个消息,用来更改界面。

final Handler handler = new Handler(){    @Override    public void handleMessage(Message msg) {        //循环播放图片
iv.setBackgroundResource(hellores[msg.what]);    }};

 

这样,一个简单的启动画面就做好了。

提示:在Android4.0版本中,这种方法无法隐藏系统的状态栏,需要修改底层代码。

来源: 

转载地址:http://necmo.baihongyu.com/

你可能感兴趣的文章
redhat6.0安装步骤
查看>>
央视广告招标京东成黑马 茅台是标王
查看>>
CnetOS 6.6 rsync 的服务端和客户端配置
查看>>
mysql双主同步配置
查看>>
【拾贝】版本控制-git 建立Team项目
查看>>
和为S的连续正数序列
查看>>
孩子们的游戏(圆圈中最后剩下的数)
查看>>
MySQL的AB复制
查看>>
Mysql调优:
查看>>
批量修改root密码#shell脚本
查看>>
Linux命令学习记录(四)
查看>>
Oracle日常维护操作笔记(一)
查看>>
网管必懂的几个概念
查看>>
puppet 部署
查看>>
ISCSI文件存储
查看>>
求助:关于windows飞信机器人的问题
查看>>
我的友情链接
查看>>
关于初步搭建完成SSH环境之后,JUnit test 测试成功,页面测试时:@Resource 注入的dao为null...
查看>>
更强大的 code generator 自定义工具
查看>>
PHP 在大多数 Unix 平台
查看>>