160多个android开源码汇总
第一部分 个性化控件(View)
主要介绍那些不错个性化的View,包含ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、ScrollView、TimeView、TipView、FlipView、ColorPickView、GraphView、UI Style等等。
、其它
一、ListView
-
android-pulltorefresh
一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView、ViewPager、WevView、ExpandableListView、GridView、ScrollView、Horizontal ScrollView、Fragment上下左右拉动刷新,比以下johannilsson那个仅仅支持ListView的强大的多。而且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好。
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true
APP演示样例:新浪微博各个页面 -
android-pulltorefresh-listview
下拉刷新ListView
项目地址:https://github.com/johannilsson/android-pulltorefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refresh-listview-demo.apk?raw=true
PS:这个被非常多人使用的项目实际有不少bug,推荐使用上面的android-pulltorefresh -
DropDownListView
下拉刷新及滑动究竟部载入很多其它ListView
项目地址:https://github.com/Trinea/AndroidCommon
Demo地址:https://play.google.com/store/apps/details?id=cn.trinea.android.demo
文档介绍:http://www.trinea.cn/android/dropdown-to-refresh-and-bottom-load-more-listview/ -
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.demodslv
APP演示样例:Wordpress Android -
SwipeListView
支持定义ListView左右滑动事件,支持左右滑动位移。支持定义动画时间
项目地址:https://github.com/47deg/android-swipelistview
Demo地址:https://play.google.com/store/apps/details?id=com.fortysevendeg.android.swipelistview
APP演示样例:微信 -
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_code -
PinnedHeaderExpandableListView
首先它是一个ExpandableListView,可是它的头部能够固定,其次,在它的上面另一个头部能够来回伸缩
项目地址:https://github.com/singwhatiwanna/PinnedHeaderExpandableListView
APP演示样例:百度手机卫士垃圾清理界面
效果图: -
StickyListHeaders
GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView。支持高速滑动。支持Android2.3及以上
项目地址:https://github.com/emilsjolander/StickyListHeaders
APP演示样例:Android 4.0联系人
效果图: -
pinned-section-listview
GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
项目地址:https://github.com/beworker/pinned-section-listview
效果图: -
PinnedHeaderListView
GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
项目地址:https://github.com/JimiSmith/PinnedHeaderListView -
QuickReturnHeader
ListView/ScrollView的header或footer,当向下滚动时消失,向上滚动时出现
项目地址:https://github.com/ManuelPeinado/QuickReturnHeader
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/quick-return-header-demo.apk?raw=true
APP演示样例:google plus -
IndexableListView
ListView右側会显示item首字母快捷索引。点击可高速滑动到某个item
项目地址:https://github.com/woozzu/IndexableListView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/indexable-listview.apk?raw=true
APP演示样例:微信通讯录、小米联系人 -
CustomFastScrollView
ListView高速滑动,同一时候屏幕中间PopupWindows显示滑动到的item内容或首字母
项目地址:https://github.com/nolanlawson/CustomFastScrollViewDemo
效果图: -
Android-ScrollBarPanel
ListView滑动时固定的Panel指示显示在scrollbar旁边
项目地址:https://github.com/rno/Android-ScrollBarPanel
效果展示:https://github.com/rno/Android-ScrollBarPanel/raw/master/demo_capture.png -
SlideExpandableListView
用户点击listView item滑出固定区域,其它item的区域收缩
项目地址:https://github.com/tjerkw/Android-SlideExpandableListView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/slide-expandable-listView-demo.apk?raw=true -
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/ -
ListViewAnimations
带Item显示动画的ListView。动画包含底部飞入、其它方向斜飞入、下层飞入、渐变消失、滑动删除等
项目地址:https://github.com/nhaarman/ListViewAnimations
Demo地址:https://play.google.com/store/apps/details?id=com.haarman.listviewanimations
APP演示样例:Google plus、Google Now卡片式进入、小米系统中应用商店、联系人、游戏中心、音乐、文件管理器的ListView、Ultimate、Light Flow Lite、TreinVerkeer、Running Coach、Pearl Jam Lyrics、Calorie Chart、Car Hire、Super BART、DK FlashCards、Counter Plus、Voorlees Verhaaltjes 2.0 -
DevsmartLib-Android
横向ListView
项目地址:https://github.com/dinocore1/DevsmartLib-Android
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/horizontal-listview-demo.apk?raw=true -
HorizontalVariableListView
支持Item宽度不一致的ListView
项目地址:https://github.com/sephiroth74/HorizontalVariableListView -
LinearListView
用LinearLayout实现的ListView,可解决多个ListView而且等问题。眼下自己也有须要,等亲自尝试过后会再详细介绍
项目地址:https://github.com/frankiesardo/LinearListView -
MultiChoiceAdapter
支持多选的ListView Adapter
项目地址:https://github.com/ManuelPeinado/MultiChoiceAdapter
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.multichoiceadapter.demo -
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.listviewdemo -
ListBuddies
自己主动滚动的双列ListView ,两个ListView滚动速度不一致,有视差效果
项目地址:https://github.com/jpardogo/ListBuddies
Demo地址:https://play.google.com/store/apps/details?id=com.jpardogo.android.listbuddies
效果展示:
二、ActionBar
-
ActionBarSherlock
为Android全部版本号提供统一的ActionBar,解决4.0下面ActionBar的适配问题
项目地址:https://github.com/JakeWharton/ActionBarSherlock
Demo地址:https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos
APP演示样例:太多了。。如今连google都在用
-
ActionBar-PullToRefresh
下拉刷新。ActionBar出现载入中提示
项目地址:https://github.com/chrisbanes/ActionBar-PullToRefresh
Demo地址:https://play.google.com/store/apps/details?id=uk.co.senab.actionbarpulltorefresh.samples.stock
APP演示样例:Gmail。Google plus,知乎等 -
FadingActionBar
ListView向下滚动逐渐显现的ActionBar
项目地址:https://github.com/ManuelPeinado/FadingActionBar
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.fadingactionbar.demo
APP演示样例:google music。知乎 -
NotBoringActionBar
google music下拉收缩的ActionBar
项目地址:https://github.com/flavienlaurent/NotBoringActionBar
Demo地址:http://flavienlaurent.com/blog/2013/11/20/making-your-action-bar-not-boring/
APP演示样例:Google音乐 -
RefreshActionItem
带进度显示和刷新button的ActionBar
项目地址:https://github.com/ManuelPeinado/RefreshActionItem
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.refreshactionitem.demo
APP演示样例:The New York Times,DevAppsDirect. -
GlassActionBar
类似玻璃的有一定透明度的ActionBar
项目地址:https://github.com/ManuelPeinado/GlassActionBar
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.glassactionbardemo
APP演示样例:google music
三、Menu
-
MenuDrawer
滑出式菜单,通过拖动屏幕边缘滑出菜单。支持屏幕上下左右划出。支持当前View处于上下层。支持Windows边缘、ListView边缘、ViewPager变化划出菜单等。
项目地址:https://github.com/SimonVT/android-menudrawer
Demo地址:http://simonvt.github.io/android-menudrawer/
APP演示样例:Gmail、Google Music等大部分google app -
SlidingMenu
滑出式菜单,通过拖动屏幕边缘滑出菜单。支持屏幕左右划出,支持菜单zoom、scale、slide up三种动画样式出现。
项目地址:https://github.com/jfeinstein10/SlidingMenu
Demo地址:https://play.google.com/store/apps/details?id=com.slidingmenu.example
APP演示样例:Foursquare, LinkedIn, Zappos, Rdio, Evernote Food, Plume, VLC for Android, ESPN ScoreCenter, MLS MatchDay, 9GAG, Wunderlist 2, The Verge, MTG Familiar, Mantano Reader, Falcon Pro (BETA), MW3 Barracks
MenuDrawer和SlidingMenu比較:SlidingMenu支持菜单动画样式出现,MenuDrawer支持菜单view处于内容的上下层 -
ArcMenu
支持类似Path的左下角动画旋转菜单及横向划出菜单、圆心弹出菜单
项目地址:https://github.com/daCapricorn/ArcMenu
APP演示样例:Path
效果图:
https://dl.dropboxusercontent.com/u/11369687/preview1.png
https://dl.dropboxusercontent.com/u/11369687/raymenu.png -
android-satellite-menu
类似Path的左下角动画旋转菜单
项目地址:https://github.com/siyamed/android-satellite-menu
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/satellite-menu-demo.apk?raw=true
APP演示样例:Path -
radial-menu-widget
圆形菜单。支持二级菜单
项目地址:https://code.google.com/p/radial-menu-widget/
效果图:http://farm8.staticflickr.com/7377/11621125154_d1773c2dcc_o.jpg -
Android Wheel Menu
圆形旋转选取菜单
项目地址:https://github.com/anupcowkur/Android-Wheel-Menu
效果图: -
FoldingNavigationDrawer
滑动并以折叠方式打开菜单
项目地址:https://github.com/tibi1712/FoldingNavigationDrawer-Android
Demo地址:https://play.google.com/store/apps/details? -
AndroidResideMenu
仿 Dribbble 的边栏菜单
项目地址:https://github.com/SpecialCyCi/AndroidResideMenu
效果图:
四、ViewPager 、Gallery
-
Android-ViewPagerIndicator
配合ViewPager使用的Indicator。支持各种位置和样式
项目地址:https://github.com/JakeWharton/Android-ViewPagerIndicator
Demo地址:https://play.google.com/store/apps/details?id=com.viewpagerindicator.sample
APP演示样例:太多了。。 -
JazzyViewPager
支持Fragment切换动画的ViewPager,动画包含转盘、淡入淡出、翻页、层叠、旋转、方块、翻转、放大缩小等
项目地址:https://github.com/jfeinstein10/JazzyViewPager
Demo地址:https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true
效果类似桌面左右切换的各种效果,只是桌面并不是用ViewPager实现而已 -
Android-DirectionalViewPager
支持横向和纵向(垂直)的ViewPager
项目地址:https://github.com/JakeWharton/Android-DirectionalViewPager
Demo地址:https://market.android.com/details? -
android-pulltorefresh
支持下拉刷新的ViewPager
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true
APP演示样例:新浪微博各个页面 -
FancyCoverFlow
支持Item切换动画效果的类似Gallery View
项目地址:https://github.com/davidschreiber/FancyCoverFlow
Demo地址:https://play.google.com/store/apps/details?id=at.technikum.mti.fancycoverflow.samples
效果图: -
AndroidTouchGallery
支持双击或双指缩放的Gallery(用ViewPager实现),相比以下的PhotoView,在被放大后依旧能滑到下一个item,而且支持直接从url和文件里获取图片。
项目地址:https://github.com/Dreddik/AndroidTouchGallery
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/touch-gallery-demo.apk?raw=true
APP演示样例:类似微信中查看聊天记录图片时可双击放大。而且放大情况下能正常左右滑动到前后图片 -
Android Auto Scroll ViewPager
Android自己主动滚动 轮播循环的ViewPager
项目地址:https://github.com/Trinea/android-auto-scroll-view-pager
Demo地址:https://play.google.com/store/apps/details?id=cn.trinea.android.demo
文档介绍:http://www.trinea.cn/android/auto-scroll-view-pager/ -
Salvage view
带View缓存的Viewpager PagerAdapter。非常方便使用
项目地址:https://github.com/JakeWharton/salvage -
Android PagerSlidingTabStrip
配合ViewPager使用的Indicator。支持ViewPager Scroll时Indicator联动
项目地址:https://github.com/astuetz/PagerSlidingTabStrip
Demo地址:https://play.google.com/store/apps/details?id=com.astuetz.viewpager.extensions.sample -
ViewPager3D
ViewPager3D效果
项目地址:https://github.com/inovex/ViewPager3D
-
AnimaTabsview
仿网易云音乐标签切换的动画,带透明小三角
项目地址:https://github.com/wuyexiong/transparent-over-animtabsview
在线演示:http://v.youku.com/v_show/id_XNzA4MjY5NjA0.html
五、GridView
-
StaggeredGridView
同意非对齐行的GridView。类似Pinterest的瀑布流。而且跟ListView一样自带View缓存,继承自ViewGroup
项目地址:https://github.com/maurycyw/StaggeredGridView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/staggered-gridview-demo.apk?raw=true
APP演示样例:Pinterest等 -
AndroidStaggeredGrid
同意非对齐行的GridView,类似Pinterest的瀑布流,继承自AbsListView
项目地址:https://github.com/etsy/AndroidStaggeredGrid
APP演示样例:Pinterest等 -
PinterestLikeAdapterView
同意非对齐行的GridView,类似Pinterest的瀑布流,同意下拉刷新
项目地址:https://github.com/GDG-Korea/PinterestLikeAdapterView
APP演示样例:Pinterest等 -
DraggableGridView
Item可拖动交换位置的GridView。实际是自己继承ViewGroup实现,类似桌面的单屏效果,可屏幕自己主动上下滚动进行Item移动交换。多屏效果见以下PagedDragDropGrid
项目地址:https://github.com/thquinn/DraggableGridView
Demo地址:https://github.com/thquinn/DraggableGridView/blob/master/bin/DraggableGridViewSample.apk?raw=true -
StickyGridHeaders
GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的GridView
项目地址:https://github.com/TonicArtos/StickyGridHeaders
效果图: -
PagedDragDropGrid
Item可拖动交换位置、拖动删除的自己定义控件,实际是自己继承ViewGroup实现。类似桌面的多屏效果。可拖动到屏幕边缘。屏幕自己主动左右滚动进行Item移动交换。可拖动进行删除,单屏效果见上面DraggableGridView
项目地址:https://github.com/mrKlar/PagedDragDropGrid
在线演示:http://youtu.be/FYTSRfthSuQ -
Android-DraggableGridViewPager
Item可拖动交换位置的GridView,实际是自己继承ViewGroup实现。类似桌面的多屏效果,可屏幕自己主动左右滚动进行Item移动交换,单屏效果见上面DraggableGridView
项目地址:https://github.com/zzhouj/Android-DraggableGridViewPager
Demo地址:https://github.com/Trinea/trinea-download/blob/master/draggable-grid-viewpager-demo.apk?raw=true
六、ImageView
-
PhotoView
支持双击或双指缩放的ImageView。在ViewPager等Scrolling view中正常使用,相比上面的AndroidTouchGallery,不仅支持ViewPager,同一时候支持单个ImageView
项目地址:https://github.com/chrisbanes/PhotoView
Demo地址:https://play.google.com/store/apps/details?id=uk.co.senab.photoview.sample
APP演示样例:photup -
android-gif-drawable
支持gif显示的view,用jni实现的,编译生成so库后直接xml定义view就可以,并且本身不依赖于其它开源项目所以相对以下的ImageViewEx简单的多
项目地址: