android启动第一个界面时即闪屏的核心代码(两种方式)

闪屏,就是SplashScreen,也可以说是启动画面,就是启动的时候,闪(展示)一下,持续数秒后,自动关闭。

   第一种方式:

android的实现非常简单,使用Handler对象的postDelayed方法就可以实现。在这个方法里传递一个Runnable对象和一个延迟的时间。该方法实现了一个延迟执行的效果,延迟的时间由第2个参数指定,单位是毫秒。第一个参数是Runnable对象,里面包含了延迟后需要执行的操作。

具体的实现步骤为:

1.实现一个闪屏窗体,设置背景图片等。

2.实现主窗体,当闪屏结束后会启动该窗体。

2.在闪屏窗体里的onCreate方法重载里,处理一个延迟执行页面跳转的操作。方法如上面的代码所示。在这里跳转到程序的主窗体。


这里只给出核心代码,ui很简单就不给了

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;

public class StarActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_star);

		// 闪屏的核心代码
		new Handler().postDelayed(new Runnable() {
			@Override
			public void run() {
				Intent intent = new Intent(StarActivity.this,
						MainActivity.class); // 从启动动画ui跳转到主ui
				startActivity(intent);
				overridePendingTransition(R.anim.in_from_right,
						R.anim.out_to_left);
				StarActivity.this.finish(); // 结束启动动画界面

			}
		}, 4000); // 启动动画持续3秒钟
	}

}


第二种方式:

通过AlphaAnimation 动画,窗口的动画效果,淡入淡出,有些游戏的欢迎动画,logo的淡入淡出效果就使用AlphaAnimation。 

【基本语法】public AlphaAnimation (float fromAlpha, float toAlpha)

fromAlpha:开始时刻的透明度,取值范围0~1。
toAlpha:结束时刻的透明度,取值范围0~1。

public class SplashActivity extends Activity
{
        private TextView tv_version;
        private LinearLayout ll;
        private ProgressDialog progressDialog;
        
        private UpdateInfo info;
        private String version;
        
        private static final String TAG = "Security";
        
        private Handler handler = new Handler()
        {
                public void handleMessage(Message msg) 
                {
                        if(isNeedUpdate(version))
                        {
                                showUpdateDialog();
                        }
                };
        };
        
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                setContentView(R.layout.splash);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                
                tv_version = (TextView) findViewById(R.id.tv_splash_version);
                version = getVersion();
                tv_version.setText("版本号  " + version);
                
                ll = (LinearLayout) findViewById(R.id.ll_splash_main);
                AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
                alphaAnimation.setDuration(2000);
                ll.startAnimation(alphaAnimation);
                
                progressDialog = new ProgressDialog(this);
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.setMessage("正在下载...");
                
                new Thread()
                {
                        public void run() 
                        {
                                try
                                {
                                        sleep(3000);
                                        handler.sendEmptyMessage(0);
                                }
                                catch (InterruptedException e)
                                {
                                        e.printStackTrace();
                                }
                        };
                }.start();
                
        }
        


其实在启动界面会包括很多操作的,比如,获取应用的版本号,以及提醒是否更新,等等操作。这里也只给出简单的核心代码,一般也是很容易理解的。


上述代码只是简单的给出了一些操作,具体的实现没有给出,比如版本号,以及更新操作,下载操作等。如果没有上述的一些操作,只要注意如下代码即可。


 ll = (LinearLayout) findViewById(R.id.ll_splash_main);
     AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
     alphaAnimation.setDuration(2000);
     ll.startAnimation(alphaAnimation);



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个Android闪屏动态界面的实例演示,包括设置闪屏以及跳转到登录界面的完整代码。 1. 首先,在res目录下创建一个名为splash.xml的布局文件,用于设置闪屏动态界面的UI。代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/splash_bg"> <ImageView android:id="@+id/splash_iv_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/logo" /> <TextView android:id="@+id/splash_tv_appname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/splash_iv_logo" android:layout_centerHorizontal="true" android:text="My App" android:textColor="#FFFFFF" android:textSize="20sp" /> </RelativeLayout> ``` 2. 在res目录下创建一个名为splash_bg.xml的drawable文件,用于设置闪屏动态界面的背景图片。代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="45" android:centerColor="#00BFFF" android:endColor="#1E90FF" android:startColor="#6495ED" android:type="linear" /> </shape> ``` 3. 在AndroidManifest.xml文件中设置闪屏动态界面启动界面代码如下: ``` <activity android:name=".SplashActivity" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 4. 在res/values/styles.xml文件中定义SplashTheme题,用于设置闪屏动态界面的样式。代码如下: ``` <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/splash_bg</item> </style> ``` 5. 在SplashActivity.java文件中编写代码,实现闪屏动态界面的设置和跳转到登录界面代码如下: ``` public class SplashActivity extends AppCompatActivity { private static final int SPLASH_TIME_OUT = 2000; // 闪屏停留时间 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); // 设置闪屏动态界面 ImageView ivLogo = findViewById(R.id.splash_iv_logo); Animation animation = AnimationUtils.loadAnimation(this, R.anim.splash_anim); ivLogo.startAnimation(animation); // 延迟跳转到登录界面 new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(SplashActivity.this, LoginActivity.class); startActivity(intent); finish(); } }, SPLASH_TIME_OUT); } } ``` 6. 最后,在res/anim目录下创建一个名为splash_anim.xml的动画文件,用于设置闪屏动态界面中Logo的动画效果。代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2000" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:toAlpha="1.0" /> ``` 以上就是一个Android闪屏动态界面的实例演示,包括设置闪屏以及跳转到登录界面的完整代码。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值