创建Android启动界面
每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。
每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。
-
制作Splash界面
突出产品LOGO,产品名称,产品主要特色;
注明产品的版本信息;
注明公司信息或者开发者信息;
背景图片,亦可以用背景颜色代替;
-
除了等待还能做点什么
大多数的Splash界面都是会等待一定时间,然后切换到下一个界面;
其实,在这段时间里,可以对系统状况进行检测,比如网络是否通,电源是否充足;
或者,预先加载相关数据;
为了能让启动界面展现时间固定,需要计算执行以上预处理任务所花费的时间,那么:启动界面SLEEP的时间=固定时间-预处理任务时间
-
源码示例(以Wordpress的Android客户端为例)
AndroidMenifest.xml
<activity android:icon="@drawable/app_icon" android:screenOrientation="portrait" android:name=".splashScreen" android:theme="@android:style/Theme.NoTitleBar"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> intent-filter> activity>
package org.wordpress.android; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.PixelFormat; import android.os.Bundle; import android.os.Handler; import android.view.WindowManager; import android.widget.TextView; public class splashScreen extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().setFormat(PixelFormat.RGBA_8888); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER); setContentView(R.layout.splashscreen); //Display the current version number PackageManager pm = getPackageManager(); try { PackageInfo pi = pm.getPackageInfo("org.wordpress.android", 0); TextView versionNumber = (TextView) findViewById(R.id.versionNumber); versionNumber.setText("Version " + pi.versionName); } catch (NameNotFoundException e) { e.printStackTrace(); } new Handler().postDelayed(new Runnable() { public void run() { /* Create an Intent that will start the Main WordPress Activity. */ Intent mainIntent = new Intent(splashScreen.this, wpAndroid.class); splashScreen.this.startActivity(mainIntent); splashScreen.this.finish(); } }, 2900); //2900 for release } }
<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center|center" android:background="@drawable/home_gradient" android:orientation="vertical"> <ImageView android:layout_marginTop="-60dip" android:paddingLeft="20dip" android:paddingRight="20dip" android:scaleType="centerInside" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/wordpress_logo" android:src="@drawable/wordpress_home"> ImageView> <TextView android:text="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dip" android:typeface="serif" android:shadowDx="0" android:shadowDy="2" android:shadowRadius="1" android:shadowColor="#FFFFFF" android:textColor="#444444" android:textSize="20dip" android:id="@+id/versionNumber" android:gravity="bottom"> TextView> LinearLayout>