Fresco图片加载+EventBus+Butterknife+Retrofit+RxJava+RxAndroid
生活随笔
收集整理的這篇文章主要介紹了
Fresco图片加载+EventBus+Butterknife+Retrofit+RxJava+RxAndroid
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
Adapter.javapackage com.bwie.xiaqin.zhoukao1208.adapter;import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.TextView;import com.bwie.xiaqin.zhoukao1208.R; import com.bwie.xiaqin.zhoukao1208.bean.lieBean;import java.util.List;/*** Created by lenovo on 2018/12/8.*/public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {private Context context;private List<lieBean.DataBean.DatasBean> list;public MyAdapter(Context context, List<lieBean.DataBean.DatasBean> list) {this.context = context;this.list = list;}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//獲得條目return new ViewHolder(View.inflate(context, R.layout.layout_adapter, null));}@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {// superChapterName;title;niceDate;chapterName/*** 將接口數據進行賦值* 由于沒有圖片,所以就沒有獲取*/holder.rxxp_te_getSuperChapterName.setText(list.get(position).getSuperChapterName());holder.rxxp_te_getNiceDate.setText(list.get(position).getNiceDate());holder.rxxp_te_getTitle.setText(list.get(position).getTitle());holder.rxxp_te_getChapterName.setText(list.get(position).getChapterName());}@Overridepublic int getItemCount() {return list.size();}public class ViewHolder extends RecyclerView.ViewHolder {TextView rxxp_te_getSuperChapterName;TextView rxxp_te_getNiceDate;TextView rxxp_te_getTitle;TextView rxxp_te_getChapterName;public ViewHolder(View itemView) {super(itemView);//獲得控件idrxxp_te_getSuperChapterName = (TextView) itemView.findViewById(R.id.rxxp_te_getSuperChapterName);rxxp_te_getNiceDate = (TextView) itemView.findViewById(R.id.rxxp_te_getNiceDate);rxxp_te_getTitle = (TextView) itemView.findViewById(R.id.rxxp_te_getTitle);rxxp_te_getChapterName = (TextView) itemView.findViewById(R.id.rxxp_te_getChapterName);}} }?
App.java
package com.bwie.xiaqin.zhoukao1208.app;import android.app.Application;import com.facebook.drawee.backends.pipeline.Fresco;/*** Created by lenovo on 2018/12/8.*/public class App extends Application{@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);} }?
baseAcitvity.java
package com.bwie.xiaqin.zhoukao1208.base.bactivity;import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity;/*** Created by lenovo on 2018/12/8.*/public class BaseActivity extends AppCompatActivity{@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);} }BasePreseneter.java
package com.bwie.xiaqin.zhoukao1208.base.presenter;import com.bwie.xiaqin.zhoukao1208.base.BaseView;/*** Created by lenovo on 2018/12/8.*/public class BasePresenter<V extends BaseView> {private V iv;public void attachView(V iv){this.iv = iv;}public void detachView(){this.iv = null;}public V getView(){return iv;} }BaseView.java
package com.bwie.xiaqin.zhoukao1208.base;/*** Created by lenovo on 2018/12/8.*/public interface BaseView { }?
bean ? bannerBean.java
package com.bwie.xiaqin.zhoukao1208.bean;import java.util.List;public class BannerBean {/*** data : [{"desc":"一起來做個App吧","id":10,"imagePath":"http://www.wanandroid.com/blogimgs/50c115c2-cf6c-4802-aa7b-a4334de444cd.png","isVisible":1,"order":3,"title":"一起來做個App吧","type":0,"url":"http://www.wanandroid.com/blog/show/2"},{"desc":"","id":4,"imagePath":"http://www.wanandroid.com/blogimgs/ab17e8f9-6b79-450b-8079-0f2287eb6f0f.png","isVisible":1,"order":0,"title":"看看別人的面經,搞定面試~","type":1,"url":"http://www.wanandroid.com/article/list/0?cid=73"},{"desc":"","id":3,"imagePath":"http://www.wanandroid.com/blogimgs/fb0ea461-e00a-482b-814f-4faca5761427.png","isVisible":1,"order":1,"title":"兄弟,要不要挑個項目學習下?","type":1,"url":"http://www.wanandroid.com/project"},{"desc":"","id":6,"imagePath":"http://www.wanandroid.com/blogimgs/62c1bd68-b5f3-4a3c-a649-7ca8c7dfabe6.png","isVisible":1,"order":1,"title":"我們新增了一個常用導航Tab~","type":1,"url":"http://www.wanandroid.com/navi"},{"desc":"","id":18,"imagePath":"http://www.wanandroid.com/blogimgs/00f83f1d-3c50-439f-b705-54a49fc3d90d.jpg","isVisible":1,"order":1,"title":"公眾號文章列表強勢上線","type":1,"url":"http://www.wanandroid.com/wxarticle/list/408/1"},{"desc":"","id":2,"imagePath":"http://www.wanandroid.com/blogimgs/90cf8c40-9489-4f9d-8936-02c9ebae31f0.png","isVisible":1,"order":2,"title":"JSON工具","type":1,"url":"http://www.wanandroid.com/tools/bejson"},{"desc":"","id":5,"imagePath":"http://www.wanandroid.com/blogimgs/acc23063-1884-4925-bdf8-0b0364a7243e.png","isVisible":1,"order":3,"title":"微信文章合集","type":1,"url":"http://www.wanandroid.com/blog/show/6"}]* errorCode : 0* errorMsg :*/private int errorCode;private String errorMsg;private List<DataBean> data;public int getErrorCode() {return errorCode;}public void setErrorCode(int errorCode) {this.errorCode = errorCode;}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}public List<DataBean> getData() {return data;}public void setData(List<DataBean> data) {this.data = data;}public static class DataBean {/*** desc : 一起來做個App吧* id : 10* imagePath : http://www.wanandroid.com/blogimgs/50c115c2-cf6c-4802-aa7b-a4334de444cd.png* isVisible : 1* order : 3* title : 一起來做個App吧* type : 0* url : http://www.wanandroid.com/blog/show/2*/private String desc;private int id;private String imagePath;private int isVisible;private int order;private String title;private int type;private String url;public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getImagePath() {return imagePath;}public void setImagePath(String imagePath) {this.imagePath = imagePath;}public int getIsVisible() {return isVisible;}public void setIsVisible(int isVisible) {this.isVisible = isVisible;}public int getOrder() {return order;}public void setOrder(int order) {this.order = order;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getType() {return type;}public void setType(int type) {this.type = type;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}} }?
lieBean.java? 列表
package com.bwie.xiaqin.zhoukao1208.bean;import java.util.List;public class lieBean {/*** data : {"curPage":1,"datas":[{"apkLink":"","author":" Ruheng","chapterId":390,"chapterName":"Git","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7632,"link":"https://juejin.im/post/599e14875188251240632702","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113919000,"superChapterId":390,"superChapterName":"項目管理","tags":[],"title":"一篇文章,教你學會Git","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"SupKing_a520","chapterId":171,"chapterName":"binder","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7631,"link":"https://www.jianshu.com/p/c1daf5653a47","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113884000,"superChapterId":171,"superChapterName":"framework","tags":[],"title":"Android:從源碼角度來賞析Binder機制的優美","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":" Roll圈圈","chapterId":355,"chapterName":"他人收集","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7630,"link":"https://www.jianshu.com/p/2d1a3ba27e76","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113860000,"superChapterId":349,"superChapterName":"開放API","tags":[],"title":"開放通用Api,總有你喜歡的","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"辰之貓","chapterId":60,"chapterName":"Android Studio相關","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7629,"link":"https://www.jianshu.com/p/e54db232df62","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113821000,"superChapterId":60,"superChapterName":"開發環境","tags":[],"title":"讓你明明白白的使用RecyclerView——SnapHelper詳解","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"鴻洋","chapterId":408,"chapterName":"鴻洋","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7633,"link":"https://mp.weixin.qq.com/s/cLhf-SSS3I5SkPEFd5Cxbw","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544112000000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/408/1"}],"title":"不到100行代碼實現左右對齊TextView","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"code小生","chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7634,"link":"https://mp.weixin.qq.com/s/i1GfYke-9419uYsZgCMiJg","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544112000000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/414/1"}],"title":"對 Kotlin 與 Java 編程語言的思考","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"郭霖","chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7635,"link":"https://mp.weixin.qq.com/s/cBISvWo8TnvlJ3oSKJ544g","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544112000000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/409/1"}],"title":"30張圖帶你徹底理解紅黑樹","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"辰之貓","chapterId":100,"chapterName":"RecyclerView","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7627,"link":"https://www.jianshu.com/p/d1ab5f6be73f","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544111204000,"superChapterId":179,"superChapterName":"5.+高新技術","tags":[],"title":"Android組件化——SXRecyclerView","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"NightFarmer","chapterId":375,"chapterName":"Flutter","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7626,"link":"https://www.jianshu.com/p/26b32dc2087e","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544110868000,"superChapterId":375,"superChapterName":"跨平臺","tags":[],"title":"Android工程內嵌Flutter,跨平臺的漸進式解決方案","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"mandypig","chapterId":99,"chapterName":"具體案例","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7590,"link":"https://www.jianshu.com/p/7241ed34346a","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544110372000,"superChapterId":94,"superChapterName":"自定義控件","tags":[],"title":"不到100行代碼實現左右對齊TextView","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"gityuan","chapterId":78,"chapterName":"性能優化","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7622,"link":"http://gityuan.com/2016/01/02/memory-analysis-command/","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544093713000,"superChapterId":79,"superChapterName":"熱門專題","tags":[],"title":"Android內存分析命令","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"看書的小蝸牛","chapterId":86,"chapterName":"圖片處理","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7621,"link":"https://www.jianshu.com/p/d5714e8987f3","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544092914000,"superChapterId":87,"superChapterName":"圖片加載","tags":[],"title":"Android Bitmap變遷與原理解析(4.x-8.x)","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"鴻洋","chapterId":408,"chapterName":"鴻洋","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7623,"link":"https://mp.weixin.qq.com/s/Vt__FGCcWftanYW5ndyXmA","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544025600000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/408/1"}],"title":"RecyclerView庫中被我們忽略的部分","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"code小生","chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7624,"link":"https://mp.weixin.qq.com/s/99eQ1_9wzYYByNTIrzOVfA","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544025600000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/414/1"}],"title":"Android 設備唯一標識(多種實現方案)","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"Jamin_正宗紅罐辣醬","chapterId":252,"chapterName":"奇怪的Bug","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7617,"link":"https://www.jianshu.com/p/18950c9b0ec9","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544005813000,"superChapterId":135,"superChapterName":"項目必備","tags":[],"title":"從Daemons到finalize timed out after 10 seconds","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"Jamin_正宗紅罐辣醬","chapterId":252,"chapterName":"奇怪的Bug","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7616,"link":"https://www.jianshu.com/p/84e7a99e8467","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544005797000,"superChapterId":135,"superChapterName":"項目必備","tags":[],"title":"Android Crash的防護與追蹤","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"鴻洋","chapterId":408,"chapterName":"鴻洋","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7618,"link":"https://mp.weixin.qq.com/s/WP8kUvcyHETlkDIdvGktdA","niceDate":"2018-12-05","origin":"","projectLink":"","publishTime":1543939200000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/408/1"}],"title":"Android高斯模糊你所不知道的坑","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"code小生","chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7619,"link":"https://mp.weixin.qq.com/s/dq_wBsp1sUYA2M_oW9hv4Q","niceDate":"2018-12-05","origin":"","projectLink":"","publishTime":1543939200000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/414/1"}],"title":"OPPO Android 開發技術面總結","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"郭霖","chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7620,"link":"https://mp.weixin.qq.com/s/kcbEto2ljhhCSNknIWtbzA","niceDate":"2018-12-05","origin":"","projectLink":"","publishTime":1543939200000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/409/1"}],"title":"Android Monitor工具詳解大全","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"zqljintu","chapterId":294,"chapterName":"完整項目","collect":false,"courseId":13,"desc":"網上有各種各樣的免費API,在眾里尋找后,最后發現何不將這些API集合在一個App中呢,鑒于個人能力有限,就選取了部分的API來創作。 感謝知乎日報的Api,提供了App中的日報板塊。 感謝豆瓣的Api,提供了App中的電影板塊。 感謝WanAndroid的Api,提供了開發板塊。 感謝Gank.io的Api,提供了娛樂版塊","envelopePic":"http://wanandroid.com/blogimgs/271a4c3f-8066-4038-b4e6-9e5756463403.png","fresh":false,"id":7612,"link":"http://www.wanandroid.com/blog/show/2445","niceDate":"2018-12-04","origin":"","projectLink":"https://github.com/zqljintu/Assembly-number","publishTime":1543928671000,"superChapterId":294,"superChapterName":"開源項目主Tab","tags":[{"name":"項目","url":"/project/list/1?cid=294"}],"title":"集結號//Assembly-number——集合了多項內容的客戶端","type":0,"userId":-1,"visible":1,"zan":0}],"offset":0,"over":false,"pageCount":289,"size":20,"total":5779}* errorCode : 0* errorMsg :*/private DataBean data;private int errorCode;private String errorMsg;public DataBean getData() {return data;}public void setData(DataBean data) {this.data = data;}public int getErrorCode() {return errorCode;}public void setErrorCode(int errorCode) {this.errorCode = errorCode;}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}public static class DataBean {/*** curPage : 1* datas : [{"apkLink":"","author":" Ruheng","chapterId":390,"chapterName":"Git","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7632,"link":"https://juejin.im/post/599e14875188251240632702","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113919000,"superChapterId":390,"superChapterName":"項目管理","tags":[],"title":"一篇文章,教你學會Git","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"SupKing_a520","chapterId":171,"chapterName":"binder","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7631,"link":"https://www.jianshu.com/p/c1daf5653a47","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113884000,"superChapterId":171,"superChapterName":"framework","tags":[],"title":"Android:從源碼角度來賞析Binder機制的優美","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":" Roll圈圈","chapterId":355,"chapterName":"他人收集","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7630,"link":"https://www.jianshu.com/p/2d1a3ba27e76","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113860000,"superChapterId":349,"superChapterName":"開放API","tags":[],"title":"開放通用Api,總有你喜歡的","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"辰之貓","chapterId":60,"chapterName":"Android Studio相關","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7629,"link":"https://www.jianshu.com/p/e54db232df62","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544113821000,"superChapterId":60,"superChapterName":"開發環境","tags":[],"title":"讓你明明白白的使用RecyclerView——SnapHelper詳解","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"鴻洋","chapterId":408,"chapterName":"鴻洋","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7633,"link":"https://mp.weixin.qq.com/s/cLhf-SSS3I5SkPEFd5Cxbw","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544112000000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/408/1"}],"title":"不到100行代碼實現左右對齊TextView","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"code小生","chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7634,"link":"https://mp.weixin.qq.com/s/i1GfYke-9419uYsZgCMiJg","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544112000000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/414/1"}],"title":"對 Kotlin 與 Java 編程語言的思考","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"郭霖","chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7635,"link":"https://mp.weixin.qq.com/s/cBISvWo8TnvlJ3oSKJ544g","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544112000000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/409/1"}],"title":"30張圖帶你徹底理解紅黑樹","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"辰之貓","chapterId":100,"chapterName":"RecyclerView","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7627,"link":"https://www.jianshu.com/p/d1ab5f6be73f","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544111204000,"superChapterId":179,"superChapterName":"5.+高新技術","tags":[],"title":"Android組件化——SXRecyclerView","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"NightFarmer","chapterId":375,"chapterName":"Flutter","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7626,"link":"https://www.jianshu.com/p/26b32dc2087e","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544110868000,"superChapterId":375,"superChapterName":"跨平臺","tags":[],"title":"Android工程內嵌Flutter,跨平臺的漸進式解決方案","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"mandypig","chapterId":99,"chapterName":"具體案例","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7590,"link":"https://www.jianshu.com/p/7241ed34346a","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544110372000,"superChapterId":94,"superChapterName":"自定義控件","tags":[],"title":"不到100行代碼實現左右對齊TextView","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"gityuan","chapterId":78,"chapterName":"性能優化","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7622,"link":"http://gityuan.com/2016/01/02/memory-analysis-command/","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544093713000,"superChapterId":79,"superChapterName":"熱門專題","tags":[],"title":"Android內存分析命令","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"看書的小蝸牛","chapterId":86,"chapterName":"圖片處理","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7621,"link":"https://www.jianshu.com/p/d5714e8987f3","niceDate":"1天前","origin":"","projectLink":"","publishTime":1544092914000,"superChapterId":87,"superChapterName":"圖片加載","tags":[],"title":"Android Bitmap變遷與原理解析(4.x-8.x)","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"鴻洋","chapterId":408,"chapterName":"鴻洋","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7623,"link":"https://mp.weixin.qq.com/s/Vt__FGCcWftanYW5ndyXmA","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544025600000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/408/1"}],"title":"RecyclerView庫中被我們忽略的部分","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"code小生","chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7624,"link":"https://mp.weixin.qq.com/s/99eQ1_9wzYYByNTIrzOVfA","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544025600000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/414/1"}],"title":"Android 設備唯一標識(多種實現方案)","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"Jamin_正宗紅罐辣醬","chapterId":252,"chapterName":"奇怪的Bug","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7617,"link":"https://www.jianshu.com/p/18950c9b0ec9","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544005813000,"superChapterId":135,"superChapterName":"項目必備","tags":[],"title":"從Daemons到finalize timed out after 10 seconds","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"Jamin_正宗紅罐辣醬","chapterId":252,"chapterName":"奇怪的Bug","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7616,"link":"https://www.jianshu.com/p/84e7a99e8467","niceDate":"2天前","origin":"","projectLink":"","publishTime":1544005797000,"superChapterId":135,"superChapterName":"項目必備","tags":[],"title":"Android Crash的防護與追蹤","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"鴻洋","chapterId":408,"chapterName":"鴻洋","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7618,"link":"https://mp.weixin.qq.com/s/WP8kUvcyHETlkDIdvGktdA","niceDate":"2018-12-05","origin":"","projectLink":"","publishTime":1543939200000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/408/1"}],"title":"Android高斯模糊你所不知道的坑","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"code小生","chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7619,"link":"https://mp.weixin.qq.com/s/dq_wBsp1sUYA2M_oW9hv4Q","niceDate":"2018-12-05","origin":"","projectLink":"","publishTime":1543939200000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/414/1"}],"title":"OPPO Android 開發技術面總結","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"郭霖","chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","envelopePic":"","fresh":false,"id":7620,"link":"https://mp.weixin.qq.com/s/kcbEto2ljhhCSNknIWtbzA","niceDate":"2018-12-05","origin":"","projectLink":"","publishTime":1543939200000,"superChapterId":408,"superChapterName":"公眾號","tags":[{"name":"公眾號","url":"/wxarticle/list/409/1"}],"title":"Android Monitor工具詳解大全","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","author":"zqljintu","chapterId":294,"chapterName":"完整項目","collect":false,"courseId":13,"desc":"網上有各種各樣的免費API,在眾里尋找后,最后發現何不將這些API集合在一個App中呢,鑒于個人能力有限,就選取了部分的API來創作。 感謝知乎日報的Api,提供了App中的日報板塊。 感謝豆瓣的Api,提供了App中的電影板塊。 感謝WanAndroid的Api,提供了開發板塊。 感謝Gank.io的Api,提供了娛樂版塊","envelopePic":"http://wanandroid.com/blogimgs/271a4c3f-8066-4038-b4e6-9e5756463403.png","fresh":false,"id":7612,"link":"http://www.wanandroid.com/blog/show/2445","niceDate":"2018-12-04","origin":"","projectLink":"https://github.com/zqljintu/Assembly-number","publishTime":1543928671000,"superChapterId":294,"superChapterName":"開源項目主Tab","tags":[{"name":"項目","url":"/project/list/1?cid=294"}],"title":"集結號//Assembly-number——集合了多項內容的客戶端","type":0,"userId":-1,"visible":1,"zan":0}]* offset : 0* over : false* pageCount : 289* size : 20* total : 5779*/private int curPage;private int offset;private boolean over;private int pageCount;private int size;private int total;private List<DatasBean> datas;public int getCurPage() {return curPage;}public void setCurPage(int curPage) {this.curPage = curPage;}public int getOffset() {return offset;}public void setOffset(int offset) {this.offset = offset;}public boolean isOver() {return over;}public void setOver(boolean over) {this.over = over;}public int getPageCount() {return pageCount;}public void setPageCount(int pageCount) {this.pageCount = pageCount;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public List<DatasBean> getDatas() {return datas;}public void setDatas(List<DatasBean> datas) {this.datas = datas;}public static class DatasBean {/*** apkLink :* author : Ruheng* chapterId : 390* chapterName : Git* collect : false* courseId : 13* desc :* envelopePic :* fresh : false* id : 7632* link : https://juejin.im/post/599e14875188251240632702* niceDate : 1天前* origin :* projectLink :* publishTime : 1544113919000* superChapterId : 390* superChapterName : 項目管理* tags : []* title : 一篇文章,教你學會Git* type : 0* userId : -1* visible : 1* zan : 0*/private String apkLink;private String author;private int chapterId;private String chapterName;private boolean collect;private int courseId;private String desc;private String envelopePic;private boolean fresh;private int id;private String link;private String niceDate;private String origin;private String projectLink;private long publishTime;private int superChapterId;private String superChapterName;private String title;private int type;private int userId;private int visible;private int zan;private List<?> tags;public String getApkLink() {return apkLink;}public void setApkLink(String apkLink) {this.apkLink = apkLink;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getChapterId() {return chapterId;}public void setChapterId(int chapterId) {this.chapterId = chapterId;}public String getChapterName() {return chapterName;}public void setChapterName(String chapterName) {this.chapterName = chapterName;}public boolean isCollect() {return collect;}public void setCollect(boolean collect) {this.collect = collect;}public int getCourseId() {return courseId;}public void setCourseId(int courseId) {this.courseId = courseId;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public String getEnvelopePic() {return envelopePic;}public void setEnvelopePic(String envelopePic) {this.envelopePic = envelopePic;}public boolean isFresh() {return fresh;}public void setFresh(boolean fresh) {this.fresh = fresh;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getLink() {return link;}public void setLink(String link) {this.link = link;}public String getNiceDate() {return niceDate;}public void setNiceDate(String niceDate) {this.niceDate = niceDate;}public String getOrigin() {return origin;}public void setOrigin(String origin) {this.origin = origin;}public String getProjectLink() {return projectLink;}public void setProjectLink(String projectLink) {this.projectLink = projectLink;}public long getPublishTime() {return publishTime;}public void setPublishTime(long publishTime) {this.publishTime = publishTime;}public int getSuperChapterId() {return superChapterId;}public void setSuperChapterId(int superChapterId) {this.superChapterId = superChapterId;}public String getSuperChapterName() {return superChapterName;}public void setSuperChapterName(String superChapterName) {this.superChapterName = superChapterName;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getType() {return type;}public void setType(int type) {this.type = type;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public int getVisible() {return visible;}public void setVisible(int visible) {this.visible = visible;}public int getZan() {return zan;}public void setZan(int zan) {this.zan = zan;}public List<?> getTags() {return tags;}public void setTags(List<?> tags) {this.tags = tags;}}} }?
home? View.java
package com.bwie.xiaqin.zhoukao1208.home.view;import com.bwie.xiaqin.zhoukao1208.base.BaseView; import com.bwie.xiaqin.zhoukao1208.bean.BannerBean; import com.bwie.xiaqin.zhoukao1208.bean.lieBean;/*** Created by lenovo on 2018/12/8.*/public interface BannerView extends BaseView {void OnHomeBannerSuccess(BannerBean bannerBean);void OnHomeCommoditySuccess(lieBean.DataBean homeCommodityBean);}Model
package com.bwie.xiaqin.zhoukao1208.home.model;import com.bwie.xiaqin.zhoukao1208.bean.BannerBean; import com.bwie.xiaqin.zhoukao1208.bean.lieBean; import com.bwie.xiaqin.zhoukao1208.utils.HttpUtils;import io.reactivex.Observable;/*** Created by lenovo on 2018/12/8.*/public class Model {public Observable<BannerBean> getHomeBanner(){//輪播圖的Observable<BannerBean> banner = HttpUtils.getInstence().api.getBanner();return banner;}public Observable<lieBean> getCommodity(){//列表的Observable<lieBean> commodity = HttpUtils.getInstence().api.getCommodity();return commodity;}}?
BannerPresenter.java
?
package com.bwie.xiaqin.zhoukao1208.home.presenter;import com.bwie.xiaqin.zhoukao1208.base.presenter.BasePresenter; import com.bwie.xiaqin.zhoukao1208.bean.BannerBean; import com.bwie.xiaqin.zhoukao1208.home.model.Model; import com.bwie.xiaqin.zhoukao1208.home.view.BannerView;import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers;/*** Created by lenovo on 2018/12/8.*/public class BannerPresener extends BasePresenter<BannerView> {private final Model homeModel;public BannerPresener(){homeModel = new Model();}public void getHomeBanner(){homeModel.getHomeBanner().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<BannerBean>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(BannerBean bannerBean) {if (bannerBean!=null){getView().OnHomeBannerSuccess(bannerBean);}}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});} }liePresenter.java
package com.bwie.xiaqin.zhoukao1208.home.presenter;import com.bwie.xiaqin.zhoukao1208.base.presenter.BasePresenter; import com.bwie.xiaqin.zhoukao1208.bean.lieBean; import com.bwie.xiaqin.zhoukao1208.home.model.Model; import com.bwie.xiaqin.zhoukao1208.home.view.BannerView;import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers;/*** Created by lenovo on 2018/12/8.*/public class liePresenter extends BasePresenter<BannerView>{private static final String TAG = "HomeCommodityPresenter";private final Model homeCommodityModel;public liePresenter(){homeCommodityModel= new Model();}public void getHot(){homeCommodityModel.getCommodity().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<lieBean>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(lieBean homeCommodityBean) {if (homeCommodityBean!=null){lieBean.DataBean data = homeCommodityBean.getData();getView().OnHomeCommoditySuccess(data);}}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});} }?
utils
HttpUtils.java
package com.bwie.xiaqin.zhoukao1208.utils;import java.io.IOException;import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory;/*** Created by lenovo on 2018/12/8.*/public class HttpUtils {public final Api api;private HttpUtils(){OkHttpClient client = new OkHttpClient.Builder().addNetworkInterceptor(new Logging()).build();Retrofit retrofit = new Retrofit.Builder().baseUrl(cont.url).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).client(client).build();api = retrofit.create(Api.class);}private class Logging implements Interceptor {@Overridepublic Response intercept(Chain chain) throws IOException {Request request = chain.request();Request.Builder builder = request.newBuilder().addHeader("soucre", "android");Response proceed = chain.proceed(request);return proceed;}}private static class GetDataNet{public static HttpUtils httpUtils = new HttpUtils();}public static HttpUtils getInstence(){return GetDataNet.httpUtils;} }Api.java
package com.bwie.xiaqin.zhoukao1208.utils;import com.bwie.xiaqin.zhoukao1208.bean.BannerBean; import com.bwie.xiaqin.zhoukao1208.bean.lieBean;import io.reactivex.Observable; import retrofit2.http.GET;/*** Created by lenovo on 2018/12/8.*/public interface Api {@GET("banner/json")Observable<BannerBean> getBanner();@GET("article/list/0/json")Observable<lieBean> getCommodity(); }cont.java
package com.bwie.xiaqin.zhoukao1208.utils;/*** Created by lenovo on 2018/12/8.*/public class cont {public static final String url = "http://www.wanandroid.com/"; }?
主頁面MainActivity.java
package com.bwie.xiaqin.zhoukao1208;import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager;import com.bwie.xiaqin.zhoukao1208.adapter.MyAdapter; import com.bwie.xiaqin.zhoukao1208.bean.BannerBean; import com.bwie.xiaqin.zhoukao1208.bean.lieBean; import com.bwie.xiaqin.zhoukao1208.home.presenter.BannerPresener; import com.bwie.xiaqin.zhoukao1208.home.presenter.liePresenter; import com.bwie.xiaqin.zhoukao1208.home.view.BannerView; import com.recker.flybanner.FlyBanner;import java.util.ArrayList; import java.util.List;import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder;public class MainActivity extends AppCompatActivity implements BannerView{List<String> imagebean = new ArrayList<>();BannerPresener homeBannerPresenter;liePresenter homeCommodityPresenter;MyAdapter home_hot_line_adapter;@BindView(R.id.flyBanner)FlyBanner flyBanner;@BindView(R.id.re_recyclerView)RecyclerView reRecyclerView;Unbinder unbinder;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);unbinder= ButterKnife.bind(this);homeBannerPresenter= new BannerPresener();homeBannerPresenter.attachView(this);homeBannerPresenter.getHomeBanner();homeCommodityPresenter= new liePresenter();homeCommodityPresenter.attachView(this);homeCommodityPresenter.getHot();}@Overridepublic void OnHomeBannerSuccess(BannerBean bannerBean) {List<BannerBean.DataBean> result = bannerBean.getData();for (int i = 0; i < result.size(); i++) {imagebean.add(result.get(i).getImagePath());}flyBanner.setImagesUrl(imagebean);//將得到的圖片數據添加}@Overridepublic void OnHomeCommoditySuccess(lieBean.DataBean homeCommodityBean) {List<lieBean.DataBean.DatasBean> datas = homeCommodityBean.getDatas();StaggeredGridLayoutManager gridLayoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);reRecyclerView.setLayoutManager(gridLayoutManager);home_hot_line_adapter = new MyAdapter(this,datas);reRecyclerView.setAdapter(home_hot_line_adapter);}@Overrideprotected void onDestroy() {super.onDestroy();unbinder.unbind();homeCommodityPresenter.detachView();homeBannerPresenter.detachView();} }?
這個是主頁面的xml
activity_main
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.bwie.xiaqin.zhoukao1208.MainActivity"><com.recker.flybanner.FlyBannerandroid:id="@+id/flyBanner"android:padding="5dp"android:layout_width="match_parent"android:layout_height="200dp"></com.recker.flybanner.FlyBanner><android.support.v7.widget.RecyclerViewandroid:layout_marginTop="10dp"android:id="@+id/re_recyclerView"android:layout_width="match_parent"android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView></LinearLayout>?
這個是adapterxml
layout_adapter
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="match_parent"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_marginLeft="10dp"android:id="@+id/rxxp_te_getSuperChapterName"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="rxxp_te_getChapterName" /><TextViewandroid:id="@+id/rxxp_te_getNiceDate"android:textColor="#dcdada"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:text="rxxp_te_getChapterName" /></RelativeLayout><TextViewandroid:layout_marginLeft="10dp"android:textColor="#000000"android:textStyle="bold"android:textSize="22sp"android:id="@+id/rxxp_te_getTitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="rxxp_te_getTitle" /><TextViewandroid:layout_marginLeft="10dp"android:textColor="#39f2da"android:id="@+id/rxxp_te_getChapterName"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="rxxp_te_getChapterName" /><Viewandroid:layout_width="match_parent"android:layout_height="10dp"android:background="#b1b0b0"/></LinearLayout>?
?
總結
以上是生活随笔為你收集整理的Fresco图片加载+EventBus+Butterknife+Retrofit+RxJava+RxAndroid的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于对话框的绘图
- 下一篇: VTL(Velocity Templat