android程序启动画面-Splash


     方法一:

    很多应用都会有一个启动界面。欢迎画面慢慢隐现,然后慢慢消隐。实现这种效果的方法有两种(暂时只发现两种)
    1、使用两个Activity,程序启动时候load第一张Activity,然后由tick触发N秒钟后startActivity另外一张Activity。
    2、使用一个Activity,可以用到View.gone() 这个方法。把Acitivity的某些元素移除。

    1、两个Activity:
    首先是AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.sunshine.splash" 
          android:versionCode="1" 
          android:versionName="1.0"> 
        <application android:icon="@drawable/icon" ;android:label="@string/app_name"> ;
            <activity android:name=".Splash" 
                      android:label="@string/app_name"> ;
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/> 
                    <category android:name="android.intent.category.LAUNCHER" /> 
                </intent-filter> 
            </activity> 
        <activity android:name="Main">
        </activity> 
    </application> 
        <uses-sdk android:minSdkVersion="3" /> 
    </manifest>

    然后是JAVA代码:

    package net.hlovey.splash; 
    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.os.Handler; 
    
    public class Splash extends Activity {    
    
        private final int SPLASH_DISPLAY_LENGHT = 3000; //延迟三秒 
    
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.splash); 
            new Handler().postDelayed(new Runnable(){ 
    
             @Override 
             public void run() { 
                 Intent mainIntent = new Intent(Splash.this,Main.class); 
                 Splash.this.startActivity(mainIntent); 
                     Splash.this.finish(); 
             } 
                
            }, SPLASH_DISPLAY_LENGHT); 
        } 
    }

    当然可以再Splash中加入动画效果。(我觉得先要布局好AndroidManifest.xml。因为那才是工程的索引文件。首先在那要有一个统筹!而不是先写java code。然后逐步往xml中增加 ,这说明对整个项目没有一个统筹的设计)

    方法二:

    androidmanifest.xml就不多说了。先看布局代码:

    <?xml version=”1.0″ encoding=”utf-8″?>
    <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
    android:orientation=”vertical”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”>   
         <LinearLayout android:id=”@+id/splashscreen” android:orientation=”vertical”
              android:layout_width=”fill_parent” android:layout_height=”fill_parent”>
              <ImageView android:layout_width=”wrap_content”
                   android:layout_height=”wrap_content” android:src=”@drawable/splash”
                   android:layout_gravity=”center”
                   android:layout_marginTop=”130px”/>
              <TextView
                   android:id=”@+id/info”
                   android:layout_width=”fill_parent”
                   android:layout_height=”wrap_content”
                   android:gravity=”center”
                   android:paddingTop=”10px”
                   android:text=”This is a splash!!”/>
         </LinearLayout>     
    <WebView android:id=”@+id/browser”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent” android:layout_weight=”1″/>
    </LinearLayout>

    有一个id为splashscreen 的linearlayout,是程序启动时显现的部分。id为browser是程序的主界面显示部分。

    package net.hlovey.s; 
    import android.app.Activity; 
    import android.app.AlertDialog; 
    import android.content.DialogInterface; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.os.Handler; 
    import android.os.Message; 
    import android.util.Log; 
    import android.view.LayoutInflater; 
    import android.view.animation.Animation; 
    import android.view.animation.AnimationUtils; 
    import android.widget.LinearLayout; 
    import android.widget.TextView; 
    import android.widget.Toast; 
    public class WebGameActivity extends Activity {

    private WebView webView; 

    private Handler mHandler = new Handler();

    private static final String TAG = "WebGameActivity"; 
    //菜单 
    private static final int MENU_RELOAD = Menu.FIRST; 
    private static final int MENU_HELP = Menu.FIRST + 1; 
    private static final int MENU_ABOUT = Menu.FIRST + 2; 
    private static final int MENU_CLOSE = Menu.FIRST + 3; 
    private int staus = 0; 

    private static final int STOPSPLASH = 0; 
    //time in milliseconds 
    private static final long SPLASHTIME = 1000; 

    private LinearLayout splash; 
    private TextView tv;

     

    private Animation myAnimation_Alpha; 
    private Animation animatinoGone ;

    private Handler splashHandler = new Handler() { 
    public void handleMessage(Message msg) { 
    switch (msg.what) { 
    case STOPSPLASH: 
    if( staus == 1 ){ 
    splash.startAnimation(animatinoGone); 
    splash.setVisibility(View.GONE); 
    break; 

    sendEmptyMessageDelayed(STOPSPLASH, SPLASHTIME); 

    super.handleMessage(msg); 

    };

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().requestFeature(Window.FEATURE_PROGRESS); //去标题栏 
    setContentView(R.layout.main); 
    animatinoGone = AnimationUtils.loadAnimation(this,R.anim.alpha_gone); //动画效果 
    myAnimation_Alpha = AnimationUtils.loadAnimation(this,R.anim.alpha_action); //动画效果 

    splash = (LinearLayout) findViewById(R.id.splashscreen); 
    tv = (TextView) findViewById(R.id.info); 
    tv.setText("正在建立数据连接"); 
    splash.startAnimation(myAnimation_Alpha); 

    Message msg = new Message(); 
    msg.what = STOPSPLASH; 
    splashHandler.sendMessageDelayed(msg, SPLASHTIME);

    }

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值