Android开发学习笔记(十)实现一个简易的开场界面

很多应用都有按下图标之后首先显示一个欢迎界面,再跳转到主activity的功能,现在来实现以下。我主要参考了CSDN上的一个仿weichat开场界面的博客,相当于一个简易版本吧。


方法一,利用系统提供的函数。

首先要新创建一个class,名为Welcome.java,主activity为MainActivity.java。

这里利用了两个函数用来把R.layout.start的内容全屏显示。

1)getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //消除状态栏

注意:

public void addFlags(int flags) {  
        setFlags(flags, flags);  
}  

所以这个函数也可以写成:getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);


2)requestWindowFeature(Window.FEATURE_NO_TITLE); //消除标题栏

这个函数要写在setContentView之前,否则无效。

开场画面活动,Welcome.java

package com.xujin.smarttaskman;

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

/** 开场欢迎动画 */
public class Welcome extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//全屏显示welcome画面
		requestWindowFeature(Window.FEATURE_NO_TITLE); 
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
				WindowManager.LayoutParams.FLAG_FULLSCREEN);		
		setContentView(R.layout.start);
		//延迟0.7秒后执行run方法中的页面跳转
		new Handler().postDelayed(new Runnable() {			
			@Override
			public void run() {
				Intent intent = new Intent(Welcome.this, MainActivity.class);
				startActivity(intent);
				Welcome.this.finish();
			}
		}, 700);
	}
}


然后是最基本的xml文件

start.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/welcome"
    android:background="#ffffff"
    android:scaleType="centerCrop"/>
</LinearLayout>

注意,这里的scaleType一定要centerCrop(使图片覆盖整个ImageView),否则显示效果很糟糕。

以上这种方法可能出现瞬间出现非全屏模式的错误。


方法二,更改AndroidMainfest.xml的内容。

设置Welcome为点开按钮后首先显示的活动,them要设置成无标题栏全屏。

<activity
            android:name="com.xujin.smarttaskman.Welcome"
            android:label="@string/app_name" 
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


这种方法没有显式使用函数,简单易懂,且不出现第一种方法瞬间出现非全屏模式的错误。


你可能感兴趣的:(android,android,android)