Android 启动页面制作(Splash Screen)

制作启动页面的思路是这样:启动一个activity作为Splash Screen,延迟一定时间后再跳转到主要activity。

下面是Splash Screen的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:contentDescription="@string/app_name"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" 
        android:scaleType="fitXY"
        />

</RelativeLayout>
整个布局只有一个ImageView。
注意写 ImageView 标签后会报一个警告:[Accessibility] Missing contentDescription attribute on image
解决方法就是加上这个属性:
android:contentDescription="@string/app_name"

第14行属性【android:scaleType = "fitXY"】的作用是把图片不按比例扩大/缩小到父View的大小显示。


下面是.java文件:

public class MainActivity extends Activity {

	private int SPLASH_DISPLAY_LENGTH = 3000; // 延迟三秒
	private ImageView splashImg = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);  
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);
		setContentView(R.layout.activity_main);
		
		splashImg = (ImageView)findViewById(R.id.imageView1);
		splashImg.setImageResource(R.drawable.splash);

		new Handler().postDelayed(new Runnable() {

			@Override
			public void run() {
				Intent mainIntent = new Intent(MainActivity.this,
						Lost_Found_Activity.class);
				MainActivity.this.startActivity(mainIntent);
				MainActivity.this.finish();
			}
		}, SPLASH_DISPLAY_LENGTH);
	}
}

说明: 

第9~11行代码:

        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);

它的作用是隐去app的标题并且全屏显示当前的activity(就是说屏幕上方的通知栏也会被遮盖掉)。


第15行代码【splashImg.setImageResource(R.drawable.splash);】指定启动页图片,splash是图片的名字,将它放到工程中res里面的drawable文件夹中,Eclipse会把资源文件添加到工程里面。


然后是Splash Screen的主体:【Handler().postDelayed(...)...】 的作用是延迟 SPLASH_DISPLAY_LENGTH (单位是毫秒),然后执行 run() 里面内容。在这里是跳转至Lost_Found_Activity,并且关闭当前的activity。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要自定义 Android 应用程序的启动屏幕,您可以按照以下步骤操作: 1. 创建一个新的 XML 布局文件,用于定义您的启动屏幕的外观和感觉。例如,您可以添加应用程序的名称、标志、背景图像等。 2. 在 Android 项目的清单文件中指定您的启动屏幕主题。您可以使用 @style/Theme.AppCompat.NoActionBar 样式,将应用程序的主题设置为无操作栏的主题。 3. 创建一个新的活动,并将其指定为您的应用程序的启动活动。在此活动中,设置您的自定义布局,并在适当的时候关闭启动屏幕。 以下是一个示例代码: 1. 创建一个名为 splash_screen.xml 的 XML 布局文件: ```xml <?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/background"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/logo" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/logo" android:layout_centerHorizontal="true" android:text="My App Name" android:textColor="#ffffff" android:textSize="24sp" /> </RelativeLayout> ``` 2. 在 AndroidManifest.xml 中为应用程序指定主题: ```xml <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme.NoActionBar"> <!-- Your activities --> </application> ``` 3. 创建一个名为 SplashScreenActivity 的新活动,并将其指定为您的应用程序的启动活动。在此活动中,设置您的自定义布局,并在适当的时候关闭启动屏幕。 ```java public class SplashScreenActivity extends AppCompatActivity { private static int SPLASH_SCREEN_TIMEOUT = 3000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash_screen); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(intent); finish(); } }, SPLASH_SCREEN_TIMEOUT); } } ``` 在此示例中,我们在 onCreate() 方法中设置自定义布局。我们还使用了一个名为 Handler 的类,在 3 秒后启动我们的主活动 MainActivity,并关闭启动屏幕。 希望这可以帮助您自定义您的 Android 应用程序的启动屏幕!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值