一、概述
继续咱们的直播之旅,过段时间再把推流拉流写上博客,暂时还是UI特效,先上图
二、创建我们的BaseActivity和BaseFrag
/**
* @author 刘洋巴金
* @date 2017-5-3
*
* 基类
* */
public abstract class BaseActivity extends FragmentActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
initBase();
initView();
initData();
initListener();
}
/**
* 设置子类getLayoutId
* */
public abstract int getLayoutId();
/**
* 基类初始化
* */
public void initBase() {
}
/**
* 子类初始化View
* */
public void initView() {
}
/**
* 子类初始化数据
* */
public void initData() {
}
/**
* 子类初始化监听
* */
public void initListener() {
}
@Override
public void onClick(View v) {
}
}
baseFrag
/**
* @author 刘洋巴金
* @date 2017-5-3
*
* Frag基类
* */
public abstract class BaseFrag extends Fragment implements OnClickListener{
public View view;
public Context myContext;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(getLayoutId(), null);
// 初始化
initBase();
initView();
initData();
initListener();
return view;
}
/**
* 设置子类getLayoutId
* */
public abstract int getLayoutId();
/**
* 基类初始化
* */
public void initBase() {
myContext = getActivity();
}
/**
* 子类初始化View
* */
public void initView() {
}
/**
* 子类初始化数据
* */
public void initData() {
}
/**
* 子类初始化监听
* */
public void initListener() {
}
@Override
public void onClick(View v) {
}
}
和baseActivity差不多
这个就是我们的基类,然后是我们的主类
/**
* @author 刘洋巴金
* @date 2017-5-3
*
* 主页
* */
public class MainActivity extends BaseActivity {
@Override
public int getLayoutId() {
return R.layout.activity_main;
}
@Override
public void initData() {
super.initData();
// 加载直播fragment
LiveFrag liveFrag = new LiveFrag();
getSupportFragmentManager().beginTransaction().add(R.id.fl_root, liveFrag).commit();
// 加载
new InteractiveFrag().show(getSupportFragmentManager(), "InteractiveFrag");
}
}
经过封装简单了很多吧?然后是加载fragment,LiveFrag就是我们的直播frag,现在目前为止就是一个图片,以后增加拉流等相关功能,然后加载我们的用户交互InteractiveFrag。
它是继承DialogFragment,这个不明白的可以百度查询,而这个也不是必须,可以自定义,
这里最主要的逻辑就是加了一个viewpager, 共加载了2个fragment,一个是我们交互用的,一个是透明的,这样是为了滑动隐藏我们的交互的功能,如上图最后的操作。EmptyFrag背景设置为透明,无任何逻辑
<