使用Android的Animator对控件添加一个动画效果

本文详细介绍如何使用Android的Animator为TextView控件添加淡入淡出及移动动画,包括AlphaAnimation、TranslateAnimation和AnimationSet的用法,以及如何通过代码实现动画控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Android的Animator对控件添加一个动画效果

项目中遇到需要对一个文本TextView控件添加一个淡入淡出的动画效果,使其配合引导页的GIF图成为动态显示,这里引申出了我解决这个问题的办法。


一、 需要涉及到的类和相关方法

  1. AlphaAnimation类:淡入淡出的动画
  2. TranslateAnimation类:控件移动的动画
  3. AnimationSet类:统一处理多种动画执行的类

在以上的三个方法中,最简单的做法是:构造一个新的该类对象都需要在初始化的时候填入对应的参数,例如:

//示例代码
AlphaAnimation aa = new AlphaAnimation(0,1); //透明度从 0 到 1
            aa.setDuration(1000); //持续时间1000ms
            
TranslateAnimation ta = new TranslateAnimation(0,0,200,0);
			//这四个参数分别表示:动画开始的X轴位置,动画结束后的X轴位置,动画开始的Y轴位置,动画结束的Y轴位置。 0表示控件的当前在xml中布局的位置。
            ta.setDuration(1000);
            ta.setFillAfter(true);//是否保持动画结束时的状态

AnimationSet as =new  AnimationSet(true);
            as.addAnimation(aa);//添加动画
            as.addAnimation(ta);
            
view.findViewById(R.id.tvTitle).startAnimation(as);//绑定控件

通过上面的示例代码不难发现,通过代码就可以实现简单的动画控制,上面这个动画的效果就是实现了一个控件从初始位置200dp的地方在1s内缓缓上升,同时从透明慢慢变为可见的过程。


二、 实际使用控制

通常使用AndoridAnimator的情况一般都是在无法使用Gif的时候,因为很多时候使用Gif会导致屏幕适配的问题不好解决,所以才手动绘制动画。

需要注意的是,在使用多个动画的时候,如果几个动画的时间和其他需求不好匹配的时候,可以通过使用Handler延迟来配合使用,例如:

getHandler().postDelayed(new Runnable() {
            @Override
            public void run() {
				view.findViewById(R.id.tv_guide_title).setVisibility(View.VISIBLE);
                showAnimator();
            }
        },2500); //延迟2500ms

后续可能会有更新

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值