本文主要是介绍Android实现动画效果之淡入淡出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
QQ群:372135639
View渐隐动画效果
/*** View渐隐动画效果*/public void setHideAnimation( View view, int duration){if (null == view || duration < 0){return;}if (null != mHideAnimation){mHideAnimation.cancel();}// 监听动画结束的操作mHideAnimation = new AlphaAnimation(1.0f, 0.0f);mHideAnimation.setDuration(duration);mHideAnimation.setFillAfter(true);view.startAnimation(mHideAnimation);}
View渐现动画效果
/*** View渐现动画效果*/public void setShowAnimation( View view, int duration){if (null == view || duration < 0){return;}if (null != mShowAnimation){mShowAnimation.cancel();}mShowAnimation = new AlphaAnimation(0.0f, 1.0f);mShowAnimation.setDuration(duration);mShowAnimation.setFillAfter(true);view.startAnimation(mShowAnimation);}
最好在监听动画开始与结束, 对于showView, 是先调用showView.setVisibility(View.VISIBLE)设置为可见, 然后才调用showView.animate()
对于hideView, 是先调用 hideView.animate(),最后在onAnimationEnd事件中调用hideView.setVisibility(View.GONE);设置为不可见
监听处理:View渐隐动画效果
/*** View渐隐动画效果*/public void setHideAnimation( final View view, int duration){if (null == view || duration < 0){return;}if (null != mHideAnimation){mHideAnimation.cancel();}// 监听动画结束的操作mHideAnimation = new AlphaAnimation(1.0f, 0.0f);mHideAnimation.setDuration(duration);mHideAnimation.setFillAfter(true);mHideAnimation.setAnimationListener(new AnimationListener(){@Overridepublic void onAnimationStart(Animation arg0){}@Overridepublic void onAnimationRepeat(Animation arg0){}@Overridepublic void onAnimationEnd(Animation arg0){view.setVisibility(View.GONE);}});view.startAnimation(mHideAnimation);}
监听处理:View渐现动画效果
/*** View渐现动画效果*/public void setShowAnimation( final View view, int duration){if (null == view || duration < 0){return;}if (null != mShowAnimation){mShowAnimation.cancel();}mShowAnimation = new AlphaAnimation(0.0f, 1.0f);mShowAnimation.setDuration(duration);mShowAnimation.setFillAfter(true);mShowAnimation.setAnimationListener(new AnimationListener(){@Overridepublic void onAnimationStart(Animation arg0){view.setVisibility(View.VISIBLE);}@Overridepublic void onAnimationRepeat(Animation arg0){}@Overridepublic void onAnimationEnd(Animation arg0){}});view.startAnimation(mShowAnimation);}
需要注意: 我发现再设置View控件渐隐,且Gone(完全不可见),这两个属性后。 当点击控件位置的时候,依旧会出发该View的点击事件。 但是单独设置View Gone的时候,点击View,就不会有反应。 这让我很费解。 正好项目里面,对于这个View的点击要进行处理, 所以我在给View设置 Gone的时候,会再次设置Clickable为false。
有个小Demo,不明白可以操作跑一下。
http://download.csdn.net/detail/u010949451/9732112
这篇关于Android实现动画效果之淡入淡出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!