控件渐变式显示和消失动画,AlphaAnimation
实现控件渐变式的显示和消失,这里我们用到的是alphaAnimation
这里不做api的介绍,很简单,度娘一堆一堆的,我这边仅仅是把代码写出来,大家一看就会懂
第一步:创建动画对象
private AlphaAnimation appearAnimator; private AlphaAnimation appearAnimator2; private AlphaAnimation disappearAnimator; private AlphaAnimation disappearAnimator2;
appearAnimator = new AlphaAnimation(0,1); appearAnimator.setDuration(300); appearAnimator2 = new AlphaAnimation(0,1); appearAnimator2.setDuration(300); disappearAnimator = new AlphaAnimation(1,0); disappearAnimator.setDuration(200); disappearAnimator2 = new AlphaAnimation(1,0); disappearAnimator2.setDuration(200);你们一定想问,为什么写出来两个,因为我要控制两个控件的显示和隐藏,你们又会骂我是个二货。各位看官别着急,没有干货 我才不会写出来找骂。
创建两个对象的原因:当两个控件同时消失的时候,如果你使用的是同一个disappearAnimator对象的时候,你一定会发现两个控件消失后,先执行消失动画的控件又会立刻显示出来,我分析的原因是同一个对象被同时使用,内部的getanimatorvalue值从1到0后,被再次执行,但是动画没有start,只有设置为1,所以又显示出来。
第二步:
显示:
if(rl1.getVisibility()==View.GONE){ rl1.startAnimation(appearAnimator); rl1.setVisibility(View.VISIBLE); rl2.startAnimation(appearAnimator2); rl2.setVisibility(View.VISIBLE); }
注意,这里显示完毕之后一定要把visible状态变为visible
隐藏:
/** * 渐进式隐藏布局 * @param rl */ private void hideRlBack(final RelativeLayout rl,AlphaAnimation disappearAnimator) { rl.startAnimation(disappearAnimator); disappearAnimator.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { rl.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); }调用:
if(rl1.getVisibility()==View.VISIBLE){ hideRlBack(rl1,disappearAnimator); hideRlBack(rl2,disappearAnimator2); }第一步的红字重要原因就是这里发生的,大家稍微注意一下。
声明,此文仅仅是让小白少走点弯路,大牛绕行。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了