须知少年凌云志,曾许人间第一流。这篇文章主要讲述Android添加全屏启动画面相关的知识,希望能为你提供帮助。
有的android软件需要在启动的时候显示一个启动画面,可以是一张图或者一些设置什么呢,还有一个好处就是,可以趁机在后台加载数据。
创建启动画面一般有两种方式:
1、建立一个activity,展示启动画面,然后再启动主Activity
2、在主Activity建立一个展示区,然后隐藏掉。
第二个其实更简单,但是这个就展示一次的东西戳在代码里,怎么想都不舒服,而且还可能设计效率问题。所以在项目里还是选用第一种。
首先建立一个Activity,这里明明为HelloActivity,界面就是activity_hello.xml。
接下来修改AndroidManifest.xml文件,把主Activity换成HelloActivity。把之前的主Activity放到下面。
< activity android:name="com.phone.config.SetActivity" android:icon="@drawable/set" android:label="@string/app_name" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="adjustUnspecified|stateHidden" >
< intent-filter>
< action android:name="android.intent.action.MAIN" />
< category android:name="android.intent.category.LAUNCHER" />
< /intent-filter>
< /activity>
这样HelloActivity就优先启动了,在java文件中编写代码,启动完画面后启动主界面。
在activity_hello.xml中就一个LinearLayout 和一个ImageView,界面很简单,但要保证他全屏,其实我们在设置文件里面已经设置了全屏,在java文件的onCreate方法里也可以设置:
@Override protected 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 & lt; 5){ index++; Message msg = new Message(); msg.what = index; handler.sendMessage(msg); }else if(index & lt; 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]); } };
【Android添加全屏启动画面】这样,一个简单的启动画面就做好了。
提示:在Android4.0版本中,这种方法无法隐藏系统的状态栏,需要修改底层代码。
来源: http://www.cnblogs.com/mnight/p/3677662.html
来自为知笔记(Wiz)
推荐阅读
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- Android开发系列(二十一)(Spinner的功能和使用方法以及实现列表选择框)
- EventBus在Android中的简单使用
- Unity3D Android手机屏幕分辨率问题
- Android应用程序无法读写USB设备的解决方法
- android第二章控件1
- Activity安卓2
- Android Studio 开发利器经常使用插件
- 到底为什么你的APP项目烂尾了()