一款使用RxJava+Retrofit+MVP的快播App开源啦!

《快播》,仿网易云音乐UI,整体采用RxJava+Retrofit+MVP的架构,支持在线视频播放,在线图片浏览等功能。

用到第三方开源库:

  • ButterKnife:依赖注入框架
  • glide:图片加载
  • retrofit:网络请求
  • jieCaoVideoPlayer:播放器

抓取接口用于数据展示

效果图如下:






基类:

package com.zmj.qvod.base;import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;public abstract class BaseActivity extends AppCompatActivity {/*** 是否沉浸状态栏**/private boolean isSetStatusBar = false;/*** 是否允许全屏**/private boolean mAllowFullScreen = false;/*** 是否允许屏幕旋转**/private boolean isAllowScreenRotate = false;/*** 当前Activity渲染的视图View**/private View mContextView = null;/*** 日志输出标志**/protected final String TAG = this.getClass().getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(TAG, "BaseActivity-->onCreate()");Bundle bundle = getIntent().getExtras();initPrams(bundle);//mContextView = LayoutInflater.from(this).inflate(bindLayout(), null);//if (mAllowFullScreen) {requestWindowFeature(Window.FEATURE_NO_TITLE);}//if (isSetStatusBar) {steepStatusBar();}//setContentView(bindLayout());//if (!isAllowScreenRotate) {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}//initView(mContextView);//setListener();//doBusiness(this);}/*** [沉浸状态栏]*/private void steepStatusBar() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 透明状态栏getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);// 透明导航栏getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}}/*** [初始化参数--加载xml视图之前]** @param bundle*/public abstract void initPrams(Bundle bundle);/*** [绑定布局]** @return*/public abstract int bindLayout();/*** [初始化控件]** @param view*/public abstract void initView(final View view);/*** [绑定控件]** @param resId* @return*/protected <T extends View> T $(int resId) {return (T) super.findViewById(resId);}/*** [设置监听]*/public abstract void setListener();/*** [业务操作]** @param mContext*/public abstract void doBusiness(Context mContext);/*** [页面跳转]** @param clz*/public void startActivity(Class<?> clz) {startActivity(new Intent(BaseActivity.this, clz));}/*** [携带数据的页面跳转]** @param clz* @param bundle*/public void startActivity(Class<?> clz, Bundle bundle) {Intent intent = new Intent();intent.setClass(this, clz);if (bundle != null) {intent.putExtras(bundle);}startActivity(intent);}/*** [含有Bundle通过Class打开编辑界面]** @param cls* @param bundle* @param requestCode*/public void startActivityForResult(Class<?> cls, Bundle bundle,int requestCode) {Intent intent = new Intent();intent.setClass(this, cls);if (bundle != null) {intent.putExtras(bundle);}startActivityForResult(intent, requestCode);}@Overrideprotected void onRestart() {super.onRestart();Log.d(TAG, "onRestart()");}@Overrideprotected void onStart() {super.onStart();Log.d(TAG, "onStart()");}@Overrideprotected void onResume() {super.onResume();Log.d(TAG, "onResume()");}@Overrideprotected void onPause() {super.onPause();Log.d(TAG, "onPause()");}@Overrideprotected void onStop() {super.onStop();Log.d(TAG, "onStop()");}@Overrideprotected void onDestroy() {super.onDestroy();Log.d(TAG, "onDestroy()");}/*** [简化Toast]** @param msg*/protected void showToast(String msg) {Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();}/*** [简化Toast]** @param msg*/protected void showToast(int msg) {Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();}/*** [是否允许全屏]** @param allowFullScreen*/public void setAllowFullScreen(boolean allowFullScreen) {this.mAllowFullScreen = allowFullScreen;}/*** [是否设置沉浸状态栏]** @param isSetStatusBar*/public void setSteepStatusBar(boolean isSetStatusBar) {this.isSetStatusBar = isSetStatusBar;}/*** [是否允许屏幕旋转]** @param isAllowScreenRotate*/public void setScreenRoate(boolean isAllowScreenRotate) {this.isAllowScreenRotate = isAllowScreenRotate;}}

作者:zhaomingjian;Github开源地址:https://github.com/zhao-mingjian/qvod

欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1621377.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

快播将关闭QVOD服务器 宅男,你心碎了吗?

快播科技昨晚发布公告称&#xff0c;快播将关闭qvod服务器&#xff0c;停止基于快播技术的视频点播和下载&#xff0c;清理低俗内容与涉盗版内容;同时启动商业模式转型&#xff0c;转型原创内容&#xff0c;重视版权内容和微电影发展。 快播官方表示&#xff0c;“从此刻起&…

TCP 和 UDP 的区别、TCP 是如何保证可靠传输的?

先来介绍一些osi七层模型 分为应用层、表示层、会话层、运输层、网络层、链路层、物理层。 应用层(数据)&#xff1a;确定进程之间通信的性质以及满足用户需要以及提供网络和用户应用&#xff0c;为应用程序提供服务&#xff0c;DNS&#xff0c;HTTP&#xff0c;HTTPS&#xf…

快播王欣将出狱!还有机会吗?

点击上方“程序员大咖”&#xff0c;选择“置顶公众号” 关键时刻&#xff0c;第一时间送达&#xff01; 服刑两年的快播董事长王欣就快出狱了。2017 年 11 月 20 日&#xff0c;他的妻子曾发微博称&#xff1a;“感谢又一年的相伴&#xff0c;终于快要出来重振雄风了 老公等你…

快播CEO王欣出狱;1号单车宣布停运;网易考拉聚美等海淘商品涉假 丨价值早报

第【857】期早报由【周四】赞助播出 01 今日头条 知情人称快播创始人王欣已经于昨日出狱 据《创业家》昨日(2月7日)报道,从知情人士处得到消息,快播创始人王欣已于昨天出狱。 该知情人士称,王欣昨日下午刚刚出来,“刚洗完澡,理完发”。 资料显示,快播成立于2007年,巅峰…

今日头条或推“多闪”对垒微信;快播王欣马桶 MT 被封;高通拒为 iPhone 提供芯片 | 极客头条...

「CSDN 极客头条」&#xff0c;是从 CSDN 网站延伸至官方微信公众号的特别栏目&#xff0c;专注于一天业界事报道。风里雨里&#xff0c;我们将每天为朋友们&#xff0c;播报最新鲜有料的新闻资讯&#xff0c;让所有技术人&#xff0c;时刻紧跟业界潮流。 快讯速知 快播CEO王欣…

游卡桌游王锐杰:桌游网游化是必然趋势

借由2008年的一次参展赠送&#xff0c;三国杀在北上广迅速走红&#xff0c;并带领桌游之风在全国广为传播。从开始仅在淘宝店个位数的买卖量到如今1000多万套的销售&#xff0c;将其创始人黄恺拉到了福布斯“中美30位30岁以下的创业者”榜单&#xff0c;与马克扎克伯格站在一起…

计算机毕业设计springboot基于springboot的桌游信息管理系统6duwm【附源码】

本项目包含程序源码数据库LW调试部署环境&#xff0c;文末可获取一份本项目的java源码和数据库参考。 系统的选题背景和意义 选题背景&#xff1a; 随着社会的发展和人们生活水平的提高&#xff0c;桌游作为一种休闲娱乐方式越来越受到人们的喜爱。桌游不仅能够带给人们欢乐和…

桌游剧本杀行业解决方案

数据显示&#xff0c;2019年剧本杀市场规模突破100亿元&#xff0c;尽管2020年受疫情影响&#xff0c;“剧本杀”市场规模仍增长至117.4亿元&#xff0c;预计未来行业规模将持续增长&#xff0c;2022年将突破230亿元。 艾媒咨询数据显示&#xff0c;消费者年轻化趋势明显&…

【游戏】买了首款桌游!

今天我的首款桌游终于到货了&#xff0c;那个激动啊&#xff01;&#xff01;&#xff01; 刚刚把棋子的贴纸贴好&#xff0c;就冲来写了此文&#xff0c;哇哈哈哈&#xff01; 盒子正面&#xff1a; 盒子背面&#xff1a; 说明书正面&#xff1a; 说明书背面&#xff1a; 人物…

Charterstone for Mac 契约石 中文版 好玩的桌游棋盘战略游戏

契约石 Charterstone for Mac 是一款桌游改编的游戏&#xff0c;游戏完美继承了桌游的特性&#xff0c;并且玩家在家也可以体验多团体游戏的爽感&#xff0c;玩家可以在契约之地上假造一座永恒之城&#xff0c;管理工人解锁和建造新设施&#xff0c;完成一个游戏内容之后在此基…

2023 精品桌游微信小程序源码 带流量主

在开发工具测试了下&#xff0c;能搭建出来&#xff0c;功能在7/25测试时正常使用 UI非常漂亮。看着也比较舒服&#xff0c;游戏重要有 1.谁是卧底 2.真心话大冒险 2023 精品桌游微信小程序源码 带流量主2023 精品桌游微信小程序源码 带流量主2023 精品桌游微信小程序源码 带流…

《生活大爆炸》里那些高智商游戏

生活大爆炸是个好片 不仅因为他在搞笑方面卓绝的贡献&#xff0c;他还为广大追求GEEK流的同志们提供了各种绝佳的time-killing方式。 一、桌游卡牌篇 1.大富翁 这绝对可以上聚会游戏热门榜&#xff01; 2.Jenga 层层叠 体验“釜底抽薪”的感觉&#xff01; 3.Mystic Warlords o…

我是一个喜欢桌游的前端女,跟朋友一起做了个桌游交流系统。在自己的系统里直播开发生活,希望能得到更多交流。

大家好&#xff0c;我平时非常喜欢玩桌游&#xff0c;同时也是一个正在努力学习中的前端&#xff0c;因为不算很年轻了&#xff0c;所以不敢自称妹子(_)。与另一位程序员朋友做了这样一个应用&#xff1a; 1.可以聊天交流 2.登录了全世界的桌游信息&#xff0c;还可以自己开频…

我开发了《联机桌游合集: UNO+斗地主+五子棋》,让你享受纯粹的游戏

1. 《联机桌游合集: UNO斗地主五子棋》是什么&#xff1f; 这是我独立开发的H5小游戏&#xff0c;它是个桌游合集&#xff0c;每一款都可以联机&#xff0c;跟朋友一起玩。 目前包括3款游戏&#xff1a;UNO、斗地主、五子棋&#xff0c;以后会持续开发新游戏。 地址&#xf…

【分享rmzt:三国杀猛将游戏主题】

三国杀猛将游戏主题 系统&#xff1a;Win2003,WinXP 大小&#xff1a;1.27 MB 主题简介&#xff1a; 《三国杀》是由北京一家桌游公司出版发行的一款热门桌上游戏&#xff0c;作为一款原创桌上游戏&#xff0c;与其他的桌面游戏最主要的分别即在于身份系统。该游戏融入里西方游…

颜值当道,画风为王——桌游美术风格漫谈

常言道&#xff1a;佛靠金装&#xff0c;人靠衣装。“外包装”大部分时候决定了给人的第一印象&#xff0c;也会让人产生一定的主观情绪。不仅人与佛如此&#xff0c;万物皆不能免俗。比如一款游戏&#xff0c;吸引人的因素有很多&#xff0c;可能是玩法&#xff0c;可能是故事…

一款难以忘怀的桌游

曾经称霸我们生活的桌游–三国杀 学号 16340047 [本人学院](http://sdcs.sysu.edu.cn/) 数据科学与计算机学院目录 曾经称霸我们生活的桌游三国杀目录 三国杀游戏介绍角色介绍游戏玩法游戏小技巧 1.三国杀游戏介绍 三国杀&#xff0c;五载岁月&#xff0c;精彩继续!游戏中&am…

2021年剧本杀专题研究报告

1. 从传统密室到剧本杀&#xff0c;线下实景娱乐形态持续迭代 1.1. 什么是剧本杀&#xff1f; 伴随着《明星大侦探》等推理综艺走红&#xff0c;近年以密室逃脱、剧本杀为代表的新兴线下娱乐方 式逐渐取代 KTV、传统桌游等成为最热门的线下游戏之一。根据艾瑞咨询&#xff0c…

我最喜欢的一款桌游

我最喜欢的一款桌游 学号&#xff1a;16340064 数据科学与计算机学院 目录 文章目录 [toc] #一名桌游爱好者的心声 我从初中开始接触桌游&#xff0c;玩了六年&#xff0c;算得上老司机了。一开始我只是和朋友打《UNO》1&#xff0c;后来天天去泡桌游吧&#xff0c;见识到各种各…

opencv的haarcascade_frontalface_default.xml等文件

文章目录 GitHub下载在安装好的OpenCV文件夹下寻找opencv-python中获取 GitHub下载 下载地址&#xff1a;https://github.com/opencv/opencv/tree/master/data/haarcascades 在安装好的OpenCV文件夹下寻找 路径如下&#xff1a; 你安装的opencv路径\OpenCV\opencv\build\et…