面朝大海 春暖花开

天行健,君子以自强不息; 地势坤,君子以厚德载物; 宠辱不惊,闲看庭前花开花落; 去留无意,漫随天外云卷云舒。 不妄取,不妄予,不妄想,不妄求, 与人方便,随遇而安。 ——《周易》

导航

四十八、先出现一张图片再出现应用首界面

现在市场上很多应用,进入的时候会首先出现一张图片,过几秒后在出现应用的首界面。这一功能可能有很多不同的实现方法,这里我提供一种使用动画来实现的方法。

思路:在首个activity的onCreate方法中,先动态生成有动画的图片,然后再加载首页面。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//创建一个布局管理器控件
LinearLayout linearLayout=new LinearLayout(AnimationActivity.this);
setContentView(linearLayout);
//设置orientation:0为horizontal, 1表示为vertical
// linearLayout.setOrientation(0);

ImageView iv=new ImageView(AnimationActivity.this);
iv.setImageResource(R.drawable.badge);
//可以继续生成需要的控件
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT);
linearLayout.addView(iv,lp1);

AlphaAnimation animation = new AlphaAnimation(0.8f, 1.0f);//淡入淡出动画,参数是指从哪个透明度到哪个透明度
animation.setDuration(3000); //动画持续时间,以毫米计算
//设置一个监听器,监听在动画执行的各个阶段会得到通知,从而调用相应方法
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) { //动画开始时执行的方法
// TODO Auto-generated method stub
Log.d("sn", "onAnimationStart");
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
Log.i("sn", "onAnimationRepeat");
}
@Override
public void onAnimationEnd(Animation animation) { //动画结束时执行的方法
// TODO Auto-generated method stub
Log.v("sn", "onAnimationEnd");

//动画执行完毕后,就加载首页面的布局。进而操作首页面即可
setContentView(R.layout.main);
initView();
}
});
iv.setAnimation(animation); //动画的绑定


}

posted on 2013-04-10 09:40  gentle_girl  阅读(306)  评论(0编辑  收藏  举报