不少应用都具有开机欢迎图片,其实现如下:
1,关键是使用handler的postdelay方法
2,配置文件中,将应用的属性设置为 android:theme="@android:style/Theme.NoTitleBar"。当然在java文件中利用代码
requestWindowFeature(Window.FEATURE_NO_TITLE); //设置标题栏样式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //全屏
也能实现类似目的
3,如果图片中需要显示应用的版本信息,获取引用版本部分的代码。
首先布局文件为:
<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" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" /> </RelativeLayout>
对应的代码部分
public class WelcomeActivity extends Activity { public static String localVersionName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //全屏显示 this.setContentView(R.layout.welcome_layout); localVersionName=getVersionName(); //需要在延迟一段时间之后实现页面的跳转,利用handler的信息传递 //获得应用的版本信息 TextView tv=(TextView)this.findViewById(R.id.welcome_tv_version); tv.setText(localVersionName+"版"); //实现开机动画的效果,利用Handler的延时发送功能 new Handler().postDelayed(new Runnable(){ @Override public void run() { Intent intent=new Intent(); intent.setClass(WelcomeActivity.this, MainActivity.class); startActivity(intent); //将当前的界面的生命周期给结束 WelcomeActivity.this.finish(); //知识点,包括intent的信息传递,activity的生命周期 } }, 2000); } public String getVersionName(){ String name; PackageManager pm=this.getPackageManager(); try { PackageInfo info=pm.getPackageInfo(this.getPackageName(), 0); name=info.versionName; } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } return name; } }