Fresco图片加载+EventBus+Butterknife+Retrofit+RxJava+RxAndroid

  1. 使用MVP框架搭建,分包明确,V层和M层解耦,通过接口完成V层和P层以及P层和M层通信,解决内存泄漏问题
  2. Retrofit做网络请求,封装网络请求工具类,使用单例模式,添加日志拦截器打印网络请求内容
  3. 集成Rxjava库,集成Gson库
  4. 请求轮播图接口,实现轮播图效果
  5. 使用RecyClerView做列表展示页面,使用ListView不得分,轮播图与列表上下联动
  6. 选择Fresco图片加载框架完成图片加载
  7. 使用Butterknife完成UI的初始化

 

Adapter.java

package 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;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //获得条目
        return new ViewHolder(View.inflate(context, R.layout.layout_adapter, null));
    }

    @Override
    public 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());
    }

    @Override
    public 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);
            //获得控件id
            rxxp_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{
    @Override
    public 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{
    @Override
    protected 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&mdash;&mdash;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组件化&mdash;&mdash;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&mdash;&mdash;集合了多项内容的客户端","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&mdash;&mdash;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组件化&mdash;&mdash;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&mdash;&mdash;集合了多项内容的客户端","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>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                    }
                    @Override
                    public void onNext(BannerBean bannerBean) {
                        if (bannerBean!=null){
                            getView().OnHomeBannerSuccess(bannerBean);
                        }
                    }
                    @Override
                    public void onError(Throwable e) {
                    }
                    @Override
                    public 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>() {

                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(lieBean homeCommodityBean) {
                        if (homeCommodityBean!=null){
                            lieBean.DataBean data = homeCommodityBean.getData();
                            getView().OnHomeCommoditySuccess(data);
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                    }
                    @Override
                    public 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 {
        @Override
        public 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;

    @Override
    protected 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();
    }

    @Override
    public 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);//将得到的图片数据添加
    }

    @Override
    public 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);
    }



    @Override
    protected 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.FlyBanner
        android:id="@+id/flyBanner"
        android:padding="5dp"
        android:layout_width="match_parent"
        android:layout_height="200dp"></com.recker.flybanner.FlyBanner>
    <android.support.v7.widget.RecyclerView
        android: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">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_marginLeft="10dp"
            android:id="@+id/rxxp_te_getSuperChapterName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="rxxp_te_getChapterName" />
        <TextView
            android: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>
    <TextView
        android: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" />
    <TextView
        android: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" />
    <View
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:background="#b1b0b0"

        />

</LinearLayout>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值