创建Android启动界面

来源:互联网 发布:此时无法下载淘宝app 编辑:程序博客网 时间:2024/05/16 08:27



每个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
  • <!--android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置--><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">    <!--    android:scaleType是控制图片如何resized/moved来匹对ImageView的size    CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽    -->    <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>    <!--    android:typeface 字体风格    -->    <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>



0 0
原创粉丝点击