VR小项目(三)

VR小项目(三)



17.打开上面上面创建好的VrVideoFragment并继承我们自己写的BaseFragment并实现他的两个方法
/**
 * Date:2017/3/18
 * author:陈箫阳ChenXiaoYang
 * furction:
 */

public class VrVideoFragment extends BaseFragment {
    private RecyclerView recyclerView;

    @Override
    public RecyclerView.LayoutManager getLayoutManager() {
        //VR视频使用GridView的样式,参数    1.上下文      2.决定一行几列
        return new GridLayoutManager(getActivity(), 2);
    }

    //在这里我们要复写onViewCreated方法
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
        //从接口中拿到LayoutManager
        RecyclerView.LayoutManager loaderManager = getLayoutManager();
        //设置LayoutManager,让子类不用再设置
        recyclerView.setLayoutManager(loaderManager);
        //使用开源框架OKGO,加载网址
        OkGo.get(ApiUrls.URL_Query)
    }

    @Override
    protected RecyclerView.Adapter getAdapter() {
        return null;
    }
}
在这里ApiUrls会报红,我们需要使用快捷键创建ApiUrls类用于存放网络数据,然后将Apiurls放入utli包中
/**
 * Date:2017/3/19
 * author:陈箫阳ChenXiaoYang
 * furction:
 */
public class ApiUrls {
    public static String API_HOST = "api.youkes.com";
    public static int API_PORT = 8081;
    public static String URL_Query = "http://" + API_HOST + ":" + API_PORT + "/api/video/query";
}
此时回到VrVideoFragment类 
在这里我们要使用JSON需要导入:com.alibaba:fastjson:1.2.29
步骤:按住control+alt+shift+s会弹出一个Project Structure点击所要添加的项目,点击Dependencies,点击+号,选择Library Dependency

.cacheKey(ApiUrls.URL_Query)//默认加载键
.cacheMode(CacheMode.DEFAULT)//采用默认格式
.execute(new StringCallback() {
    //网络请求成功的回调
    @Override
    public void onSuccess(String s, Call call, Response response) {
        try {
            //创建原生的JSONObject来解析数据
            JSONObject obj = new JSONObject(s);
            String content = obj.getString("content");
            //然后报解析的数据先放在Bean类,再放到集合里,这里我们用Gson,fastJson会更方便
            List<VideoItem> videoItems = JSON.parseArray(content, VideoItem.class);
            //给RecyclerView设置适配器,把数据集合传到适配器里
            recyclerView.setAdapter(new VrVideoAdapter(videoItems));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
});
在这里List集合的VideoItem会报红,使用快捷键创建VideoItem类, VrVideoAdapter也会报红,使用快捷键创建VrVideoAdapter适配器类实现一个内部抽象方法然后在让他调用父类的方法
/**
 * Date:2017/3/19
 * author:陈箫阳ChenXiaoYang
 * furction:
 */
public class VideoItem {
    public String vtype;
    public String id;
    public String key;
    public String play;
    public String title;
    public String img;
    public String url;
    public String isbin;
    public String t0;
    public String t1;
    public String t2;
    public String userName;
    public String userNick;
    public String userPhoto;
    public String vclass;
    public int width;
    public int height;
    public float score0;
    public long date;
    public String _id;
    public String userId;
    public String[] tags;
    public int cnt;
    public String type;
    public String videoChannelName;
    public String videoChannelId;
    public String text;
    public String textSimple;
    public String dateCnSimple;
}

/**
 * Date:2017/3/17
 * author:陈箫阳ChenXiaoYang
 * furction:VR视频模块RecyclerView所需适配器
 */
public class VrVideoAdapter extends BaseQuickAdapter<VideoItem> {
    //通过构造方法,加载一个默认布局及获取传过来的数据
    public VrVideoAdapter(List<VideoItem> videoItems) {
        super(R.layout.vr_video_list_item, videoItems);
    }

    @Override
    protected void convert(BaseViewHolder helper, VideoItem item) {
    }
}
在这里R.layout.vr_video_list_item会报红,使用快捷键创建vr_video_list_item布局文件,显示一些简单的布局,用到了一些颜色需要以下步骤
    1.打开res下的values包再打开colors布局文件添加一些颜色
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值