自己写一个简单的Splash界面的过程
2017-02-18 17:45
239 查看
首先新建一个空的activity工程,默认有一个MainAativity,本次练习想实现一个简单的splash界面,短暂的停顿进入主界面,开始新建目录的时候遇到一些问题,Android studio自动识别目录下的文件,如果有的目录下没有文件,他会这样显示。
其实我的目录里有一个ui和一个activity目录,不像xcode那样,空的目录直接显示。
紧接着我就新建了一个splash界面,MainActivitymorning是继承与AppCompatActivity,而AppCompatActivity继承与FragementActivity,FragementActivity继承与Activity,也就说AppCompatActivity这个里面包含了fragement的一些特性,如果splash只是实现一个显示全屏的图片,直接继承与Activity就可以了,然后再创建一个splash的layout文件,在activity_splash.xml里增加一行代码,splash是一张图片:splash.png。提前加到mipmap文件夹下。
接着打开AndroidManifest.xml配置文件,把
对应的activity修改为Splash的,如:
然后记得把原来的MainActivity注册到这个配置文件里,我当时没加,切换的时候闪退了。
返回到SplashAcitivity.java文件里,在onCreate函数里增加以下代码
主要是加载layout文件,并且显示,延迟0.8s后执行goToMain函数进入主界面。
最后发现每次启动的过程中,都会有一个白屏显示一下才显示splash界面,这样的用户体验肯定不好,所以经过同事辅导,和查了网上一些资料,修改了一下,达到预期效果
主要是给splash增加一个theme配置文件:
只需要修改这两个文件,一切搞定。最后提醒通常splash界面程序启动完就应该小时,不可以返回,让资源尽快释放,记得之星finish().
其实我的目录里有一个ui和一个activity目录,不像xcode那样,空的目录直接显示。
紧接着我就新建了一个splash界面,MainActivitymorning是继承与AppCompatActivity,而AppCompatActivity继承与FragementActivity,FragementActivity继承与Activity,也就说AppCompatActivity这个里面包含了fragement的一些特性,如果splash只是实现一个显示全屏的图片,直接继承与Activity就可以了,然后再创建一个splash的layout文件,在activity_splash.xml里增加一行代码,splash是一张图片:splash.png。提前加到mipmap文件夹下。
android:background="@mipmap/splash"
接着打开AndroidManifest.xml配置文件,把
android.intent.action.MAIN
对应的activity修改为Splash的,如:
<activity android:name=".ui.activity.SplashActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
然后记得把原来的MainActivity注册到这个配置文件里,我当时没加,切换的时候闪退了。
<activity android:name=".ui.activity.MainActivity"> </activity>
返回到SplashAcitivity.java文件里,在onCreate函数里增加以下代码
setContentView(R.layout.activity_splash); new Handler().postDelayed(new Runnable() { @Override public void run() { goToMain(); } },800);
主要是加载layout文件,并且显示,延迟0.8s后执行goToMain函数进入主界面。
最后发现每次启动的过程中,都会有一个白屏显示一下才显示splash界面,这样的用户体验肯定不好,所以经过同事辅导,和查了网上一些资料,修改了一下,达到预期效果
主要是给splash增加一个theme配置文件:
<!--splash主题--> <style name="Theme.Splash" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@mipmap/splash</item> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style>
<activity android:name=".ui.activity.SplashActivity" android:screenOrientation="portrait" android:theme="@style/Theme.Splash"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
只需要修改这两个文件,一切搞定。最后提醒通常splash界面程序启动完就应该小时,不可以返回,让资源尽快释放,记得之星finish().
相关文章推荐
- 自学网页开发,打算自己开发一个简单的网站,记录下自己开发过程
- 组件制作之二(一个简单组件的制作过程)
- 如何创建一个简单的JAVA存储过程
- 自己写的一个简单得shell得菜单
- 一个简单的存储过程数据分页
- Delphi7下用dbExpress调用Oracle存储过程(返回数据集)的一个简单示例和调试过程
- 原来这么简单就可以申请Blog了,害我还自己做了一个~
- 不再使用自动编号了。自己写了一个Id生成器,超级简单
- asp.net中 cookies的应用,自己写的一个简单登陆程序。
- 译:Apache Maven-简化java的构建过程--比apache ant更多(2) 创建一个简单的maven项目
- Delphi7下用dbExpress调用Oracle存储过程(返回数据集)的一个简单示例和调试过程
- 自己动手做一个简单的WebPart
- 如何创建一个简单的JAVA存储过程?[转贴]
- 一个简单的oracle分页存储过程的实现和调用
- 一个简单的存储过程~
- 如何创建一个简单的JAVA存储过程?[转贴]
- 一个简单的oracle分页存储过程的实现和调用
- 一个简单的存储过程数据分页
- 自己写的一个asp.net分页类(sqlserver).注意是类,不是存储过程但原理一样
- 发布自己写的一个简单的新闻列表WebPart