创建Android启动界面

 

 每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。

 

  1.制作Splash界面

  突出产品LOGO,产品名称,产品主要特色;

  注明产品的版本信息;

  注明公司信息或者开发者信息;

  背景图片,亦可以用背景颜色代替;

 

  2.除了等待还能做点什么

  大多数的Splash界面都是会等待一定时间,然后切换到下一个界面;

  其实,在这段时间里,可以对系统状况进行检测,比如网络是否通,电源是否充足;

  或者,预先加载相关数据;

  为了能让启动界面展现时间固定,需要计算执行以上预处理任务所花费的时间,那么:启动界面SLEEP的时间=固定时间-预处理任务时间;

 

  3.源码示例

  AndroidMenifest.xml

 

  <activityandroid:icon="@drawable/app_icon"

                   android:screenOrientation="portrait"

                   android:name=".splashScreen"

                   android:theme="@android:style/Theme.NoTitleBar">

              <intent-filter>

                  <actionandroid:name="android.intent.action.MAIN"/>

                  <categoryandroid:name="android.intent.category.LAUNCHER"/>

              </intent-filter>

          </activity>

 

  splashScreen.java

 

  packageorg.wordpress.android;

 

  importandroid.app.Activity;

  importandroid.content.Intent;

  importandroid.content.pm.PackageInfo;

  importandroid.content.pm.PackageManager;

  importandroid.content.pm.PackageManager.NameNotFoundException;

  importandroid.graphics.PixelFormat;

  importandroid.os.Bundle;

  importandroid.os.Handler;

  importandroid.view.WindowManager;

  importandroid.widget.TextView;

 

 

  public classsplashScreen extends Activity {

      /**

       * Called when the activity is firstcreated.

       */

 

      @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(newRunnable() {

              public void run() {

                  /* Create an Intent that willstart the Main WordPress Activity. */

                  Intent mainIntent = newIntent(splashScreen.this, wpAndroid.class);

                 splashScreen.this.startActivity(mainIntent);

                  splashScreen.this.finish();

              }

          }, 2900); //2900 for release

 

      }

  }

 

  splashscreen.xml

 

  <!--

  android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。

  android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置

  -->

  <LinearLayoutandroid: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的长/宽

      -->

      <ImageViewandroid: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 字体风格

      -->

      <TextViewandroid: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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值