您的位置:首页 > 移动开发 > Android开发

Activity切换结合动画效果出现白屏的问题

2015-05-31 16:56 961 查看
直接将跳转Activity的代码写在启动动画效果的后面会造成动画无法完整执行以及一段时间的白屏,处理的办法是加上一个监听动画是否完成的监听器

<span style="font-size:18px;"> Animation animation = AnimationUtils.loadAnimation(thisActivity,
R.anim.scale);
animation.setDuration(1000);
set.addAnimation(animation);
v.startAnimation(set);
final View tv = v;
animation.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationEnd(Animation animation) {</span>
<span style="font-size:18px;">tv.setAlpha(0);
Intent intent = new Intent(thisActivity, DisplayActivity.class);
intent.putExtra("url", "https://www.baidu.com");
startActivity(intent);
}
});</span>

在android中有两种动画,一种是Tweened Animations 这种动画的实现较为简单,有旋转,移动,伸缩,淡出等等效果,分别是Alpha——淡出,Scale——伸缩,Rotate——旋转,Translate——移动
还有一种是Frame_by_frame Animations 这种是逐帧动画,需要一个Drawable序列来完成

使用的一些技巧:

1。动画默认是一起实现的

2。关于在确定动画的几个参数时,使用到的,Animation.RELATIVE_TO_SELF这个是相对自己取单位长度,接下来的一个参数的单位就是这个控件本身的长或者宽

      Animation.RELATIVE.TO_PARENT这个是相对于父控件取单位长度

3。几种动画的构造方法的介绍:

translate:这种动画的构造方法需要八个参数,分别是起始位置xy,结束位置xy,四个坐标,以及四种取单位长度的办法。

4。Scale:缩放的动画,这个也是八个参数,分别是:收缩前宽度,收缩后宽度,收缩前高度,收缩后高度,xy值取但闻长度的方式,以及xy的初始值,若设置成Animation.RELATIVE_TO_SELF和0.5f搭配,就会在原地进行伸缩

5.也可以加载位于res/anim文件夹里的动画效果,注意一个文件只能放一个动画效果

使用

Animation animation=Animation.loadAnimation(Context context,int resid);来加载动画
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息