解决android动画只执行一次的情况

  引子:今天在使用动画实现一个控件淡入淡出效果时,果断选用AlphaAnimation,但写出来后经调试发现,其不能多次触发实现,只有在首次使用时才可以,后来百度了下,发现大家有类似的问题,解决办法也很简单,就在原来基础上添加一行代码即可。下面看部分关键代码:

首先,定义两个AlphaAnimation对象

private AlphaAnimation appearAnimation,disappAnimation;
接下来实例化对象并设置一些参数如渐入渐出,持续时间,设置监听等。

appearAnimation = new AlphaAnimation(0, 1);//动画逐渐显现
appearAnimation.setDuration(1500);//持续时间
appearAnimation.setAnimationListener(new AnimationListener() {
			
	@Override
	public void onAnimationStart(Animation arg0) {
		// TODO Auto-generated method stub
				
	}
			
	@Override
	public void onAnimationRepeat(Animation arg0) {
		// TODO Auto-generated method stub
				
	}
			
	@Override
	public void onAnimationEnd(Animation arg0) {
		// TODO Auto-generated method stub
		RL_title.setVisibility(View.VISIBLE);
	}
});
<pre name="code" class="java" style="font-size: 14px;">disappAnimation = new AlphaAnimation(1, 0);//动画逐渐消失
disappAnimation.setDuration(1500);
disappAnimation.setAnimationListener(new AnimationListener() {
			
	@Override
	public void onAnimationStart(Animation arg0) {
		// TODO Auto-generated method stub
				
	}
			
	@Override
	public void onAnimationRepeat(Animation arg0) {
		// TODO Auto-generated method stub
				
	}
			
	@Override
	public void onAnimationEnd(Animation arg0) {
		// TODO Auto-generated method stub
		RL_subTitle.setVisibility(View.GONE);
	}
});

 下面开始调用 

RL_subTitle.setAnimation(disappAnimation);//调用该方法时,动画只执行一次
RL_subTitle.startAnimation(disappAnimation);//同时调用该方法时,动画可多次执行
//disappAnimation.startNow(); //开启动画			
RL_title.setAnimation(appearAnimation);
RL_title.startAnimation(appearAnimation);
//appearAnimation.start();

其实,执行一次和执行多次的区别在于,你是否完成了动画的完整编写。被屏蔽的代码表示开启动画,无论调用startNow()或start()均可以,至于两个方法的区别,可以查看链接:点击打开链接

首次写博客,有不对的地方请各位大神斧正斧正。



  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值