学习了网上的各式各样的启动画面后,总结并精简了了一下,自己实测后是有效的,记录一下。
第一种
通过ImageView结合Animation来实现。
首先在Mainfest里设置启动Activity的Theme
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
在xml里拖入一个ImageView,让其填充
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
记得在layout里添加padding,否则会出现边框(影响美观)
android:padding="0dp"
回到Activity
public class MainActivity extends Activity {
private ImageView loadImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loadImage = (ImageView) findViewById(R.id.imageView1);
Animation animation = new AlphaAnimation(0.5f, 1.0f);
animation.setDuration(3000); //持续时间
loadImage.startAnimation(animation);
animation.setAnimationListener(new LoadAnimation()); //设置动画监听器
}
然后是动画监听器的部分
public class LoadAnimation implements AnimationListener {
@Override
public void onAnimationStart(Animation animation) {
loadImage.setBackgroundResource(R.drawable.inori014); //配置背景
}
@Override
public void onAnimationEnd(Animation animation) {
Intent intent=new Intent(MainActivity.this,NewActivity.class); //结束启动画面(Activity)
startActivity(intent);
finish();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
}</span>
第二种
直接用xml设置好背景,然后用hanlder处理消息的机制来进入下一个Activity。
首先,同样设置好Manifest的Theme
xml直接添加背景
android:background="@drawable/inori014"
回到Activity
其中
Handler().postDelayed(Runnable r,long delayMillis)
这句为定一个延时后执行线程r,还是很容易理解的
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() { //延时执行线程
@Override
public void run() {
Intent intent=new Intent(MainActivity.this,NewActivity.class);
MainActivity.this.startActivity(intent);
MainActivity.this.finish();
}
}, 3000);
}