AlphaAnimation的使用---控件显示(隐藏)时的属性动画
来源:互联网 发布:网络项目 编辑:程序博客网 时间:2024/05/01 17:59
这里直接贴代码,mListViewListener用来在滑动的时候发消息给handler显示控件。doOnScrollStateChange()用于在listView停止滑动时,发消息给Handler隐藏控件。
protected void doOnScrollStateChanged(AbsListView view, int scrollState) {// TODO Auto-generated method stub super.doOnScrollStateChanged(view, scrollState);if(MusicUtils.sGnGiFlag){switch(scrollState){case OnScrollListener.SCROLL_STATE_IDLE: isScrolling = false; if(!isTouchOnListView){Message msg = Message.obtain();msg.what = MSG_DISMISS_INDEXVIEW;mIndexViewVisibilityHandler.sendMessageDelayed(msg, INDEXVIEW_SHOW_LAST_TIME);}else{mIndexViewVisibilityHandler.removeCallbacksAndMessages(null);}break;case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL: isScrolling = true; break;}}}
private static final int MSG_DISMISS_INDEXVIEW = 0; private static final int MSG_SHOW_INDEXVIEW = 1;Handler mIndexViewVisibilityHandler = new Handler(Looper.getMainLooper()){ int animationDuration = 500;@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);switch(msg.what){case MSG_DISMISS_INDEXVIEW:if(mAmigoAlphabetIndexView.getVisibility() != View.VISIBLE)return;AlphaAnimation dismissAlphaAnimation = new AlphaAnimation(mAmigoAlphabetIndexView.getAlpha(), 0);dismissAlphaAnimation.setDuration(animationDuration);dismissAlphaAnimation.setAnimationListener(new AnimationListener(){@Overridepublic void onAnimationStart(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationEnd(Animation animation) {// TODO Auto-generated method stubmAmigoAlphabetIndexView.setAlpha(0);mAmigoAlphabetIndexView.setVisibility(View.INVISIBLE);}@Overridepublic void onAnimationRepeat(Animation animation) {// TODO Auto-generated method stub}});mAmigoAlphabetIndexView.clearAnimation();mAmigoAlphabetIndexView.startAnimation(dismissAlphaAnimation);break;case MSG_SHOW_INDEXVIEW:LogUtil.i(TAG, "MSG_SHOW_INDEXVIEW");if(!getIsShowIndexer())return;AlphaAnimation showAlphaAnimation;if(mAmigoAlphabetIndexView.getVisibility() == View.VISIBLE){showAlphaAnimation = new AlphaAnimation(mAmigoAlphabetIndexView.getAlpha(), 1);showAlphaAnimation.setDuration((long)((1-mAmigoAlphabetIndexView.getAlpha())*animationDuration));}else{showAlphaAnimation = new AlphaAnimation(0, 1);showAlphaAnimation.setDuration(animationDuration);}showAlphaAnimation.setAnimationListener(new AnimationListener(){@Overridepublic void onAnimationStart(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationEnd(Animation animation) {// TODO Auto-generated method stubmAmigoAlphabetIndexView.setVisibility(View.VISIBLE);mAmigoAlphabetIndexView.setAlpha(1);}@Overridepublic void onAnimationRepeat(Animation animation) {// TODO Auto-generated method stub}});mAmigoAlphabetIndexView.clearAnimation();mAmigoAlphabetIndexView.startAnimation(showAlphaAnimation);break;}} };
private boolean isTouchOnListView = false; private boolean isScrolling = false; OnTouchListener mListViewListener = new View.OnTouchListener() { int minYDistance = 40; float startY = 0; @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if(mAmigoAlphabetIndexView.getVisibility() == View.INVISIBLE && MotionEvent.ACTION_MOVE == event.getAction()){ if(Math.abs(event.getRawY() - startY) > minYDistance){ mIndexViewVisibilityHandler.removeCallbacksAndMessages(null); mIndexViewVisibilityHandler.sendEmptyMessage(MSG_SHOW_INDEXVIEW); } }else if(MotionEvent.ACTION_DOWN == event.getAction()){ startY = event.getRawY(); isTouchOnListView = true; }else if(MotionEvent.ACTION_UP == event.getAction()){ isTouchOnListView = false; if(!isScrolling){ Message msg = Message.obtain(); msg.what = MSG_DISMISS_INDEXVIEW; mIndexViewVisibilityHandler.sendMessageDelayed(msg, INDEXVIEW_SHOW_LAST_TIME); }else{ mIndexViewVisibilityHandler.removeCallbacksAndMessages(null); } } return false; } };
0 0
- AlphaAnimation的使用---控件显示(隐藏)时的属性动画
- 控件隐藏/显示时的动画效果
- 显示隐藏控件的属性
- [VB.Net]Browsable的使用/隐藏或显示控件属性
- iOS控件的动画显示与隐藏
- 控件渐变式显示和消失动画,AlphaAnimation
- Android 动画1--View控件的显示和隐藏效果
- android布局中显示隐藏控件的动画
- Android 控件的显示隐藏上下左右移动动画
- Android 动画1--View控件的显示和隐藏效果
- Android 控件的显示隐藏上下左右移动动画
- Android 控件的显示隐藏上下左右移动动画
- Android 动画1--View控件的显示和隐藏效果
- android动画之AlphaAnimation(渐变动画,最简单的动画)
- ios 控件的动画隐藏
- 动画的显示与隐藏
- Android动画之AlphaAnimation使用
- JQuery的动画(显示、隐藏、淡出淡入、自定义动画)
- windows下make使用的环境配置
- Python语句(一)
- linux入门:atexit函数
- Android应用程序整合第三方API(以高德Map API为例)
- 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
- AlphaAnimation的使用---控件显示(隐藏)时的属性动画
- POJ2155-Matrix-二维树状数组
- C/C++ 知识回顾(一) const
- How to eat more Banana
- UVA 10189 - Minesweeper(扫雷)
- Javaweb表格加载---DataTable
- bzoj2435: [Noi2011]道路修建 树上dp
- scanf输入原理
- 淘宝刷单兼职背后的秘密