为什么要有这个,当然是为了 copy 啊啊啊啊  

https://github.com/Trinea/android-open-project    开源project搜集

0. 强烈推荐的2个库,   NineOldAndroids+ ListViewAnimationshttps://github.com/JakeWharton/NineOldAndroidsListViewAnimations 带Item显示动画的ListView,动画包括底部飞入、其他方向斜飞入、下层飞入、渐变消失、滑动删除等 ---- ****
项目地址:https://github.com/nhaarman/ListViewAnimations
Demo地址:https://play.google.com/store/apps/details?id=com.haarman.listviewanimations1. android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新
ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal)ScrollView、Fragment上下左右拉动刷新。
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true3. DropDownListView 下拉刷新及滑动到底部加载更多ListView
项目地址:https://github.com/Trinea/AndroidCommon
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/TrineaAndroidDemo.apk?raw=true
文档介绍:http://www.trinea.cn/?p=5234. DragSortListView 拖动排序的ListView
同时支持ListView滑动item删除,各个Item高度不一、单选、复选、CursorAdapter做为适配器、拖动背景变化等
项目地址:https://github.com/bauerca/drag-sort-listview
Demo地址:https://play.google.com/store/apps/details?id=com.mobeta.android.demodslv5. SwipeListView 支持定义ListView左右滑动事件,支持左右滑动位移,支持定义动画时间
项目地址:https://github.com/47deg/android-swipelistview
Demo地址:https://play.google.com/store/apps/details?id=com.fortysevendeg.android.swipelistview6. Android-SwipeToDismiss 滑动Item消失ListView
项目地址:https://github.com/romannurik/Android-SwipeToDismiss
支持3.0以下版本见:https://github.com/JakeWharton/SwipeToDismissNOA
Demo地址:https://github.com/JakeWharton/SwipeToDismissNOA/SwipeToDismissNOA.apk/qr_code7. StickyListHeaders GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView,支持快速滑动,支持Android2.3及以上
项目地址:https://github.com/emilsjolander/StickyListHeaders
APP示例:Android 4.0联系人
效果图:https://raw.github.com/emilsjolander/StickyListHeaders/master/demo.gif8. pinned-section-listview GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
项目地址:https://github.com/beworker/pinned-section-listview
效果图:https://raw.github.com/beworker/pinned-section-listview/master/screen1.png9. PinnedHeaderListView GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
项目地址:https://github.com/JimiSmith/PinnedHeaderListView10. QuickReturnHeader ListView/ScrollView的header或footer,当向下滚动时消失,向上滚动时出现
项目地址:https://github.com/ManuelPeinado/QuickReturnHeader
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/quick-return-header-demo.apk?raw=true11. IndexableListView ListView右侧会显示item首字母快捷索引,点击可快速滑动到某个item
项目地址:https://github.com/woozzu/IndexableListView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/indexable-listview.apk?raw=true12. CustomFastScrollView ListView快速滑动,同时屏幕中间PopupWindows显示滑动到的item内容或首字母
项目地址:https://github.com/nolanlawson/CustomFastScrollViewDemo
效果图:https://raw.github.com/nolanlawson/CustomFastScrollViewDemo/master/example.png13. Android-ScrollBarPanel ListView滑动时固定的Panel指示显示在scrollbar旁边
项目地址:https://github.com/rno/Android-ScrollBarPanel
效果展示:https://github.com/rno/Android-ScrollBarPanel/raw/master/demo_capture.png14. SlideExpandableListView 用户点击listView item滑出固定区域,其他item的区域收缩
项目地址:https://github.com/tjerkw/Android-SlideExpandableListView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/slide-expandable-listView-demo.apk?raw=true15. JazzyListView ListView及GridView item以特殊动画效果进入屏幕,效果包括grow、cards、curl、wave、flip、fly等等
项目地址:https://github.com/twotoasters/JazzyListView
Demo地址:https://play.google.com/store/apps/details?id=com.twotoasters.jazzylistview.sample
效果展示:http://lab.hakim.se/scroll-effects/16. DevsmartLib-Android 横向ListView
项目地址:https://github.com/dinocore1/DevsmartLib-Android
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/horizontal-listview-demo.apk?raw=true17.multichoiceAdapter 多选的adapter,一种比原生adapter更简单的实现,记录选项总数和背景高亮
项目地址: https://github.com/ManuelPeinado/MultiChoiceAdapter
Demo地址:https://play.google.com/store/apps/details?id=com.dpizarro.nfc.basichttps://play.google.com/store/apps/details?id=com.projectsexception.myapplist18. Cards-UI 卡片式View,支持单个卡片,item为卡片的ListView
项目地址:https://github.com/afollestad/Cards-UI
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/cards-ui-demo.apk?raw=true19. cardslib 卡片式View,支持单个卡片,item为卡片的ListView和GridView
项目地址:https://github.com/gabrielemariotti/cardslib
Demo地址:https://play.google.com/store/apps/details?id=it.gmariotti.cardslib.demo20.HorizontalVariableListView 支持Item宽度不一致的ListView
项目地址:https://github.com/sephiroth74/HorizontalVariableListView21.ListBuddies 双列循环滚动的 ListView
项目地址:https://github.com/jpardogo/ListBuddies
讲解文章:http://blog.chengyunfeng.com/?p=57322.LinearListView用LinearLayout实现的ListView,可解决多个ListView并存的问题以及横向滚动的List
项目地址:https://github.com/frankiesardo/LinearListView23.EnhancedListView支持横向滑动滑动删除列表项以及撤销删除的ListView,该项目的前身是SwipeToDismissUndoList
项目地址:https://github.com/timroes/EnhancedListView
Demo地址:https://play.google.com/store/apps/details?id=de.timroes.android.listviewdemo&rdid=de.timroes.android.listviewdemo24.Smoothie异步加载数据的listView和GridView
项目地址:https://github.com/lucasr/smoothie25.QuickReturnListView快速返回的ListView
项目地址:https://github.com/LarsWerkman/QuickReturnListView26.SuperListView超级ListView,提供了很多实用效果的ListView像滑动删除,无数据时的默认Layout显示
项目地址:https://github.com/dommerq/SuperListview27.ListViewTipsAndTricks 关于ListView的一些指点和技巧
项目地址:https://github.com/cyrilmottier/ListViewTipsAndTricks29.超轻量!安卓实现多item抽屉效果动画
https://blog.csdn.net/AndroidMsky/article/details/53083634
https://github.com/AndroidMsky/ElasticLayout30.https://blog.csdn.net/u011043551/article/details/68936881 https://github.com/zhuyuqiang2017/Animation  ListView 入场动画31.android笔记listview item加载动画( 左边划入 ) https://blog.csdn.net/hunanqi/article/details/53008947 Android之NineOldAndroids实现绚丽的ListView左右滑动删除Item效果  https://blog.csdn.net/shenggaofei/article/details/52369001

1. ListView 删除item动画 (删除某一项Item后,上部分保持不动,下部分依次往上移直至合并)  (add item的动画, 将这个反向来)
2. 设置listview 的简单平移或者缩放动画
3. ListView  item 上移动画 
4. ListView的渐变,淡入和淡出 第一个Item和最后一个Item (OnScrollListener监听)

5. ListView 滑动时,其他控件联动变化  或者 联动变色 (OnScrollListener监听)

1. ListView 删除item动画 (删除某一项Item后,上部分保持不动,下部分依次往上移直至合并)  (add item的动画, 将这个反向来)

(https://blog.csdn.net/baidujiangwei18/article/details/51387633)

(1)  删除某一项数据时,触发此方法 private void deleteCell(final View v, final int index) { //执行完动画,删除itemAnimationListener al = new AnimationListener() {  @Override  public void onAnimationEnd(Animation arg0) {  ListData.remove(index);listView.remove(index);  ViewHolder vh = (ViewHolder) view.getTag();  vh.needInflate = true;  mMyAnimListAdapter.notifyDataSetChanged();  }  @Override public void onAnimationRepeat(Animation animation) {}  @Override public void onAnimationStart(Animation animation) {}  };  //开始执行 animationcollapse(v, al);  }  private void collapse(final View v, AnimationListener listenenr) {  //获取当前view的高度final int initialHeight = v.getMeasuredHeight();  Animation anim = new Animation() {  //实现动画@Override  protected void applyTransformation(float interpolatedTime, Transformation t) {  // interpolatedTime  0 ---> 1if (interpolatedTime == 1) {  //interpolatedTime == 1.0fv.setVisibility(View.GONE);  }  else {  //慢慢高度缩小v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);  //刷新自身viewv.requestLayout(); //可以继续设置透明,旋转等效果}  }  @Override  public boolean willChangeBounds() {  return true;  }  };  //设置 listeneranim.setAnimationListener(listenenr);//动画时间 1秒anim.setDuration(1000);  //开始动画v.startAnimation(anim);  }  (2) 属性动画实现  (add item的动画, 将这个反向来)public static AnimatorSet buildListRemoveAnimator(final View view, final List list, final MyAnimListAdapter adapter, final int index) {  AnimatorListener al = new AnimatorListener() {  @Override  public void onAnimationStart(Animator animation) {  // TODO Auto-generated method stub  }  @Override  public void onAnimationRepeat(Animator animation) {  // TODO Auto-generated method stub  }  @Override  public void onAnimationEnd(Animator animation) {  // TODO Auto-generated method stub  list.remove(index);  ViewHolder vh = (ViewHolder) view.getTag();  vh.needInflate = true;  adapter.notifyDataSetChanged();  }  @Override  public void onAnimationCancel(Animator animation) {  // TODO Auto-generated method stub}  };  AnimatorSet animatorSet = new AnimatorSet();  Animator anim = ObjectAnimator.ofFloat(view, "rotationX", 0, 90);  Animator animb = ObjectAnimator.ofFloat(view, "alpha", 1, 0);  ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);  final int height = view.getMeasuredHeight();  valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {  @Override  public void onAnimationUpdate(ValueAnimator animation) {  // TODO Auto-generated method stub  if (animation.getAnimatedFraction() >= 1) {  view.setVisibility(View.GONE);  }  else {  view.getLayoutParams().height = height  - (int) (height * animation.getAnimatedFraction());  view.requestLayout();  }  }  });  anim.setDuration(ANIMATION_DURATION);  animb.setDuration(ANIMATION_DURATION);  valueAnimator.setDuration(ANIMATION_DURATION + ANIMATION_DURATION + 100);  animatorSet.playTogether(anim, animb, valueAnimator);  animatorSet.addListener(al);  return animatorSet;  }

2. 设置listview 的简单平移或者缩放动画

<ListViewandroid:layoutAnimation="@anim/listviewtranslate2"  --layout动画android:id="@+id/lv_taskcenter"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_alignParentTop="true"android:background="@color/title_bg_color"android:cacheColorHint="#00000000"android:footerDividersEnabled="false"android:listSelector="#00000000"></ListView><!--位移动画 和差速器-->
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"android:animation="@anim/scale_0_2"android:delay="0.5"android:interpolator="@android:anim/accelerate_decelerate_interpolator"
/><!-- 动画 -->@anim/scale_0_2
<translate  xmlns:android="http://schemas.android.com/apk/res/android"android:fromXDelta="100%"android:toXDelta="0"android:duration="1000"/><scale xmlns:android="http://schemas.android.com/apk/res/android"android:fromXScale="0"android:toXScale="1"android:fromYScale="0"android:toYScale="1"android:duration="1000"/>

3.  ListView item 上移动画 (https://blog.csdn.net/wushuangshuangmj/article/details/52442022)

补间动画,一个向上平移100pix的平移动画和从不显示到显示的的Alpha动画。@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//动画///////////////if (convertView != null&& position > mPreviousPostition) {mPreviousPostition = position; // 初始值为-1AnimationSet animationSet = new AnimationSet(false);animationSet.setDuration(mAnimDuration);animationSet.setAnimationListener(this);animationSet.setFillBefore(true);animationSet.setStartOffset(mCurrentAnimationCount * mAnimDuration / 3);Animation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0,Animation.RELATIVE_TO_SELF, 0,Animation.ABSOLUTE, dip2px(mContext, 100),Animation.RELATIVE_TO_SELF, 0);translateAnimation.setInterpolator(mInterpolator);animationSet.addAnimation(translateAnimation);Animation alphaAnimation = new AlphaAnimation(0, 1);animationSet.addAnimation(alphaAnimation);convertView.startAnimation(animationSet);++mCurrentAnimationCount;HANDLER.post(mRunnable);}
///结束//return convertView;}

4.  ListView的渐变,淡入和淡出 第一个Item和最后一个Item (OnScrollListener监听)
https://blog.csdn.net/cc_lova_wxf/article/details/51097586

public class AlphaListView extends ListView implements AbsListView.OnScrollListener {  private int height;  private int itemHeight;  public AlphaListView(Context context) {  super(context);  init();  }  public AlphaListView(Context context, AttributeSet attrs) {  super(context, attrs);  init();  }  public AlphaListView(Context context, AttributeSet attrs, int defStyleAttr) {  super(context, attrs, defStyleAttr);  init();  }  private void init() {  setOnScrollListener(this);  }  @Override  public void onScrollStateChanged(AbsListView view, int scrollState) {  }  @Override  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  //将所有View的透明度设置为1  for(int i = 0; i < getChildCount(); i++){  getChildAt(i).setAlpha(1);  }  //得到第一个可见的View  View v = getChildAt(0);  if(v != null){  //得到这个v的高度  itemHeight = v.getHeight();  //得到可见部分  int visiableLength = v.getBottom();  //得到可见不分部分比例  float ratio = visiableLength * 1.0f / itemHeight;  v.setAlpha(ratio);  }  //得到最后一个可见的View  v = getChildAt(visibleItemCount - 1);  if(v != null){  //得到这个v的高度  itemHeight = v.getHeight();  //得到可见部分  int visiableLength = height - v.getTop();  //得到可见不分部分比例  float ratio = visiableLength * 1.0f / itemHeight;  v.setAlpha(ratio);  }  }  @Override  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  height = MeasureSpec.getSize(heightMeasureSpec);  super.onMeasure(widthMeasureSpec, heightMeasureSpec);  }
}另外一种设置view属性方式// 对任何控件 View ListView ScrollView 都适用 , 设置 逐渐消逝; 逐渐消失
mListView.setVerticalFadingEdgeEnabled(true);
// 设置消失的距离
mListView.setFadingEdgeLength(100);  

5.  ListView 滑动时, 其他控件联动变化  或者 联动变色 (OnScrollListener监听)

private final int DISTANCE = 500;//滑动的最大位移  mListView.setOnScrollListener(new AbsListView.OnScrollListener() {  @Override  public void onScrollStateChanged(AbsListView view, int scrollState) {  }  @Override  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  lastVisibleCount = firstVisibleItem + visibleItemCount;  int offset = 0;  if (firstVisibleItem == 0) {  View firstItem = mListView.getChildAt(0);  if (firstItem != null) {  offset = 0 - firstItem.getTop();  }  } else {  offset = DISTANCE;  }  float percent = (offset * 1f) / (DISTANCE * 1f) ;  if (percent >= 0 && percent <= 1) {  // 联动处理textView.setAlpha(percent);  }  Log.v("tag_2", "percent = " + percent);  }
}); 

ListView 简单动画和 一些动画库相关推荐

  1. css3动画简介以及动画库animate.css的使用

    在这个年代,你要是不懂一点点css3的知识,你都不好意思说你是个美工.美你妹啊,请叫我前端工程师好不好.呃..好吧,攻城尸...呵呵,作为一个攻城尸,没有点高端大气上档次的东西怎么能行呢,那么css3 ...

  2. css animation动画完成后隐藏_css3动画简介以及动画库animate.css的使用

    在这个年代,你要是不懂一点点css3的知识,你都不好意思说你是个美工.美你妹啊,请叫我前端工程师好不好.呃..好吧,攻城尸...呵呵,作为一个攻城尸,没有点高端大气上档次的东西怎么能行呢,那么css3 ...

  3. vue过渡动画Animate.css动画库(1)

    一.前言: 在开发中,我们想要给一个组件的显示和消失添加某种过渡动画,可以很好的增加用户体验, Vue中为我们可以自定义过渡或动画或者Vue提供一些内置组件完成动画,利用它们我们可以方便的实现过渡动画 ...

  4. 前端能力模型-动画类型及动画库的介绍

    一.背景: 合适的动画不仅更能吸引人们的眼球,也能让你的应用体验更为流畅,而将动画的效果做到极致,才能让用户感到使用你的应用是一种享受,而不是觉得生硬和枯燥. 二.动画技术分类: 按技术类型来进行分类 ...

  5. html页面css3滚动加载,aos.js-网页滚动加载动画的jQueryCSS3动画库

    aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页面滚动时提供28种不同的元素动画效果,以及多种easing效果.在页面往回滚动时,元素会恢复到原来的状态. MIT许 ...

  6. 【视觉高级篇】18 # 如何生成简单动画让图形动起来?

    说明 [跟月影学可视化]学习笔记. 动画的三种形式 固定帧动画:预先准备好要播放的静态图像,然后将这些图依次播放,实现起来最简单,只需要为每一帧准备一张图片,然后循环播放即可. 增量动画:就是在每帧给 ...

  7. NineoldAndroids动画库源码分析

    简介 做Android开发的同学很多都知道或者使用过一个动画库,那就是NineOldAndroids,它的作者及其牛X,好几个著名的开源库都是他的作品,具体大家可以看他的JakeWharton.简单来 ...

  8. JavaScript动画库:Anime.js

    前言 今天简单学习一下JavaScript动画库:Anime.js.官网的介绍是: Anime.js (/ˈæn.ə.meɪ/) 是一个轻量的JavaScript 动画库, 拥有简单而强大的API. ...

  9. 动画库NineOldAndroids

    动画库NineOldAndroids NineOldAndroids组件是一个向下兼容的动画库,主要是使低于API 11的系统也能够使用View的属性动画.该动画库支持旋转.移动.透明渐变.缩放等动画 ...

最新文章

  1. vdi voi idv区别_VDI桌面虚拟化和IDV桌面虚拟化到底有哪些不同
  2. python天天学怎么样-Python天天学_03_基础三
  3. 彻底卸载nodejs和npm然后使用nvm
  4. 下载虚拟化的mac 系统
  5. linux重启python服务_如何将python脚本作为linux服务启动
  6. leetcode题库283-- 移动零
  7. SQL 语句 - Select(6): 字段运算
  8. Oracle中文简繁体转换函数
  9. python之window下安装python2版的pyv8库 (window install python2 pyv8)
  10. skywang的博客目录(持续更新中...)
  11. 会声会影2020迅雷磁力链接bt搜索种子百度云网盘下载及有效序列号
  12. 动态规划和分治法解合唱队形问题
  13. abaqus质量缩放系数取值_ABAQUS的质量缩放
  14. macOS Big Sur 11.3.1 (20E241) 虚拟机 ISO 镜像
  15. 如何成为一名优秀的技术 Leader?(转)
  16. 5G核心网技术基础自学系列 | 消息业务
  17. 全国率先!北京发文推进电子劳动合同
  18. Kubernetes--Pod的DNS域名和相关特性
  19. 深入JVM-垃圾回收
  20. python request.get

热门文章

  1. iOS学习笔记32-iCloud入门
  2. rosdep update错误解决
  3. 原创:没有信用卡如何在iTunes注册帐号?
  4. 苹果手机速度慢_手机上网很卡?只需要几步就能让手机飞速起来
  5. 心、肝、脾、肺、肾逐个说
  6. PostgreSQL 数据库安装手册
  7. html设计网页主题
  8. linux 软路由 带机量,Linux 软路由性能测试及分析[图文]
  9. Android选择联系人并返回对应号码
  10. Python中Json对象处理的jsonpath-rw