创建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>
     
    splashScreen.java
     
    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
    
        }
    }
     
    splashscreen.xml
     
    
    <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>
    复制代码

创建Android启动界面 android开发 1w+ 0 36
2015-03-16 来源:eisk.cn
精彩推荐