源码地址
https://github.com/leibnik/ZhihuDaily
说明
- 该项目集成了Bmob SDK用于登陆,注册,收藏,修改密码,修改用户名,上传头像,项目已含有Application Id无需自行申请。
- 默认主题为蓝白色,可选择相册图片来自定义主题,通过对Bitmap进行裁剪使能以CenterCrop方式设置背景
- 对首页背景图片,侧滑页背景图片及个人主页的AppBarLayout背景图片进行模糊处理,采用了流传较广的模糊算法FastBlur
- 使用RecyclerView,全面替代ListView,无论是添加点击事件,滚动监听事件,header,footer
- SwipeRefreshLayout配合RecyclerView.OnScrollListener实现下拉刷新,footer视图配合RecyclerView.OnScrollListener实现上拉加载
- 使用multiline-collapsingtoolbar代替了原生的collapsingtoolbar,使得Expanded状态的title能多行显示
- 对图片进行模糊处理耗时在几十到几百毫秒不等,因此开启异步任务进行模糊处理,如个人主页的AppBarLayout需要根据头像生成模糊的背景图片
- 上传图片成功并且Glide完成新头像的加载,需要更换AppBarLayout背景图片,可在使用Glide加载新头像时添加RequestListener,取得Drawble后开启异步任务进行模糊处理
效果图
开源依赖库
官方依赖库
- com.android.support:Recyclerview:23.1.1
- com.android.support:appcompat-v7:23.1.1
- com.android.support:design:23.1.1
Gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.loopj.android:android-async-http:1.4.8'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'net.opacapp:multiline-collapsingtoolbar:1.0.0'
compile 'com.victor:lib:1.0.4'
compile files('libs/fastjson-1.2.8.jar')
//bmob-sdk所需依赖
compile 'cn.bmob.android:bmob-sdk:3.4.5'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okio:okio:1.4.0'
}
API
知乎日报API (由 Izzy Leung提供)