学习了网上的各式各样的启动画面后,总结并精简了了一下,自己实测后是有效的,记录一下。
第一种
通过ImageView结合Animation来实现。
首先在Mainfest里设置启动Activity的Theme
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
在xml里拖入一个ImageView,让其填充
<ImageViewandroid: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;@Overrideprotected 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 {@Overridepublic void onAnimationStart(Animation animation) {loadImage.setBackgroundResource(R.drawable.inori014);//配置背景}@Overridepublic void onAnimationEnd(Animation animation) {Intent intent=new Intent(MainActivity.this,NewActivity.class);//结束启动画面(Activity)startActivity(intent);finish();}@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Handler().postDelayed(new Runnable() {//延时执行线程@Overridepublic void run() {Intent intent=new Intent(MainActivity.this,NewActivity.class);MainActivity.this.startActivity(intent);MainActivity.this.finish();}}, 3000);}