Netease cloud music Ui && Retrofit + RxJava + MVVM-databinding && GankIo、Douban Api
一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目。项目采取的是Retrofit + RxJava + MVVM-DataBinding架构开发。开发中所遇到的各种问题已归纳在这里。
A netease cloud music based UI, using GankIo and douban API development accord with Google Material Desgin reading class open source projects.Various problems encountered in the development of has been summed up here.
如果有任何问题,请到github的issue处写上你不明白的地方,也可以通过下面提供的方式联系我,我会及时给予帮助。
If you have any questions, please write to the issue of making you don't understand of place, also can contact me through here, I will help them in time.
- 1、基本遵循Google Material Design设计风格。
- 2、干货集中营内容与豆瓣电影书籍内容。
- 3、MvvM-DataBinding的项目应用。
- 4、
NavigationView
搭配DrawerLayout
的具体使用。 - 5、透明状态栏使用与版本适配。
- 6、高仿网易云音乐歌单详情页。
- 7、RxBus代替EventBus进行组件之间通讯。
- 8、
ToolBar
的全方面使用。 - 9、
Glide
加载监听,获取缓存,圆角图片,高斯模糊。 - 10、水波纹点击效果详细使用与适配。
- 11、
RecyclerView
下拉刷新,上拉加载。 - 12、基于
DataBinding
的ViewHolder
。 - 13、基于
DataBinding
的BaseActivity
和BaseFragment
。 - 14、
Fragment
懒加载模式。 - 15、
SwipeRefreshLayout
结合RecyclerView
下拉刷新上拉加载。 - 16、
CoordinatorLayout
+Behavior
实现标题栏渐变。 - 17、
NestedScrollView
嵌套RecyclerView
的使用。
- 1、App体积大小从16M降到5.8M!
- 2、将App里固定的图片以移动到七牛。
- 3、更改项目主页透明状态栏显示方式。
- 4、更改每日推荐图片显示规则,使其不重复显示。
- 5、更换过渡图图片。
- 6、代码优化;删除多余资源。
- 1、更改每日推荐逻辑,使其一定有数据
- 2、干货集中营的item改为CardView展示
- 3、代码优化
- 1.书籍详情页面增加自定义元素共享切换动画,并可简单添加需要支持的详情页
- 2.代码优化
- 3.其他
-
我几乎看过了所有关于Android仿网易云音乐的项目与文章,发现大部分做的都不够细致,也没有比较好的内容填充,于是决心自己着手做一个,才有了这个开源项目。这里列出主要参考的内容。
-
参考项目:ImitateNetEasyCloud、banya;主要数据来源:Gank.Io、豆瓣Api。
-
使用到的开源库:glide、bottomsheet、nineoldandroids、rxandroid等等。
-
感谢代码家、张鸿洋、drakeet、yang747046912等众多开发者贡献的开源项目,让我从中学到了很多!
感谢网易云音乐App提供参考,附上《网易云音乐Android 3.0视觉设计规范文档》。本人是网易云音乐的粉丝,使用了其中的部分素材,并非攻击,如构成侵权请及时通知我修改或删除。大部分数据来自于干货集中营和豆瓣APIV2.0,一切数据解释权都归代码家和豆瓣所有。
注意:此开源项目仅做学习交流使用,如用到实际项目还需多考虑其他因素如并发等,请多多斟酌。如果你觉得不错,对你有帮助,欢迎点个fork,star,follow,也可以帮忙分享给你更多的朋友,这是给我们最大的动力与支持。另,此MvvM-databinding框架是依照自己理解而写,有疑问可以看这里。
- **QQ:**770413277
- 简书:Jingbin_
- Blog:http://jingbin.me
- **Email:**[email protected]
Copyright (C) 2016 Bin Jing
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.