兼容安卓10的快播(Retrofit)

首页教程更新时间:2023-05-31 07:14:56

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

用到第三方开源库:

抓取接口用于数据展示

效果图如下:

兼容安卓10的快播,Retrofit(1)

兼容安卓10的快播,Retrofit(2)

兼容安卓10的快播,Retrofit(3)

兼容安卓10的快播,Retrofit(4)

兼容安卓10的快播,Retrofit(5)

兼容安卓10的快播,Retrofit(6)

基类:

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(); @Override protected 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); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "onRestart()"); } @Override protected void onStart() { super.onStart(); Log.d(TAG, "onStart()"); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "onResume()"); } @Override protected void onPause() { super.onPause(); Log.d(TAG, "onPause()"); } @Override protected void onStop() { super.onStop(); Log.d(TAG, "onStop()"); } @Override protected 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

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
蛞蝓大作战
蛞蝓大作战
下载
欢聚宝
欢聚宝
下载
速成驾考
速成驾考
下载
红包爱诗词
红包爱诗词
下载
跳舞跳破了的鞋子mp3
跳舞跳破了的鞋子mp3
下载
米狗全景记录仪
米狗全景记录仪
下载
比机票V7.0.7.8免费版
比机票V7.0.7.8免费版
下载
爱付直通车
爱付直通车
下载
LaboCamera
LaboCamera
下载
ocean.rabbit
ocean.rabbit
下载
神奇男孩3龙之陷阱十一项修改器
神奇男孩3龙之陷阱十一项修改器
下载
驭享火马
驭享火马
下载
口袋购物iPad版V5.1.5
口袋购物iPad版V5.1.5
下载
愿你健康
愿你健康
下载
幸福绘
幸福绘
下载
乒乓球王者
乒乓球王者
下载