1、制作一张启动图片splash.png,放置在res->drawable-hdpi文件夹中。
2、新建布局文件splash.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash" >
<TextView
android:id="@+id/versionNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="26dp"
android:layout_marginRight="52dp"
android:text="version 1.0"
android:textColor="" />
</RelativeLayout>
这里我们把上一步制作的图片作为启动界面的背景图,然后在界面底部显示当前程序的版本号。
3、新建SplashActivity,在Oncreate中添加以下代码:
PackageManager pm = getPackageManager()
try {
PackageInfo pi = pm.getPackageInfo("com.lyt.android", 0)
TextView versionNumber = (TextView) findViewById(R.id.versionNumber)
versionNumber.setText("Version " + pi.versionName)
} catch (NameNotFoundException e) {
e.printStackTrace()
}
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this,SplashScreenActivity.class)
startActivity(intent)
SplashActivity.this.finish()
}
}, 2500)
4、 修改Manifest文件,将启动界面Activity改为默认启动,并且设置标题栏不可见。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sinaweibo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity1"
android:label="@string/title_activity_main_activity1" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这样打开应用后等待2.5秒就进入第二个activity MainActivity了。
简单的Splash Screen这种Splash Screen实现及其简单,常用来显示产品Logo或者版本号等简单信息,我们只需要想办法让WelcomeActivity运行几秒种后自动跳转到应用主界面即可;
我们只需要用到一个简单的方法:
<code class="hljs" java="">//3s后,执行run方法启动主界面Activity
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashScreen.this, MainActivity.class)
startActivity(i)
//启动主Activity后销毁自身
finish()
}
}, 3000)</code>
2,涉及复杂 *** 作的Splash Screen
所谓复杂 *** 作是因为往往这种应用在进入界面之前需要进行很多后台 *** 作,通过Splash Screen让用户等待,一般涉及的 *** 作有:
从网络获取数据并存储到本地 下载图片 获取和解析JSON/XML等文件 发送数据到服务端 身份验证 。。。。
反正一般都是类似于网路下载这样的些耗时 *** 作,但又不得不在应用进入主界面前需要做的工作。根据应用的不同,所做的工作也不同,这里就以远程获取一张图片,我们在进入欢迎界面后,开始从远程下载一张图片,完成后我们便进入主界面,将解析后的数据显示在主界面;
图片地址:: 创建SplashScreen布局: res/layout/splash_screen.xml
<code class="hljs" xml=""><linearlayout android:gravity="center" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<imageview android:id="@+id/appImage" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@mipmap/logo">
<textview android:gravity="center" android:layout_height="wrap_content" android:layout_margintop="15dp" android:layout_width="wrap_content" android:text="Welcome" android:textcolor="#00ACED" android:textsize="30sp" ms_movie="" to="">
</textview></imageview></linearlayout></code>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)