Android白板与文档组件
优质
小牛编辑
131浏览
2023-12-01
白板与文档组件的核心类是CCDocViewManager,获取核心类的实例: CCDocViewManager mDocViewManager = CCDocViewManager.getInstance();
1.2 画笔和文档的历史数据
进入房间首先要获取画笔和文档的历史数据
mDocViewManager.setDocHistory(mDocView,mWebView);
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
mDocView | DocView | 画板和图片的view | 必选 |
mWebView | DocWebView | ppt动画和ppt翻页的view | 必选 |
1.2 DocView控件
主要是处理画笔数据、白板、图片逻辑
1.2.1设置白板和文档的宽高
mDocView.setWhiteboard(width, height);
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
width | int | 手机屏幕的宽 | 必选 |
height | int | 手机屏幕的高 | 必选 |
1.2.2 设置DocWebView可见
public void setDocWebViewSetVisibility(DocWebView mDocView){
1.2.3 设置手指触发画笔(支持老师端,或是被设为讲师,或是授权标注,才需要设置)
public void setTouchInterceptor(boolean isInterceptor,int role) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
isInterceptor | boolean | true:支持画笔;false:不支持画笔 | 必选 |
role | int | 用户角色画笔默认值,老师:默认为红色;互动者:默认为蓝色 | 可选 |
1.2.4 设置画笔的粗细(支持老师端,或是被设为讲师,或是授权标注,才需要设置)
public void setStrokeWidth(float width) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
width | float | 设置画笔的粗细,精度为float类型 | 必选 |
1.2.5 设置画笔的颜色(支持老师端,或是被设为讲师,或是授权标注,才需要设置)
public void setColor(int color, int colorStr) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
color | int | 画笔的颜色 | 必选 |
colorStr | int | 当前的颜色,需要给服务端传过去的 | 必选 |
1.2.6 撤销画笔(支持老师端,或是被设为讲师,或是授权标注,才需要设置)
只撤销自己的画笔数据
public void undo() {
老师撤销所有人的画笔数据
public void teacherUndo() {
1.2.7 清空画笔数据(支持老师端,或是被设为讲师,或是授权标注,才需要设置)
清空当前页的画笔数据:
public void clear() {
清空整个文档的画笔数据
public void clearAll() {
1.2.8 释放白板的资源
public void recycle() {
1.2.9 橡皮檫功能
public void setEraser(boolean isEraser){
}
参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
isEraser | boolean | true打开橡皮檫功能,false:画笔功能,默认是走的false画笔功能 | 必选 |
例子:
//支持画笔功能
@OnClick(R.id.id_lecture_draw_paint)
void showPaint() {
mDocView.setEraser(false);
}
//支持橡皮檫功能
@OnClick(R.id.id_lecture_draw_eraser)
void showEraser() {
mDocView.setEraser(true);
}
1.3.0 手势缩放文档功能
该功能支持放大缩放平移所有文档。
文档的布局格式
<RelativeLayout
android:id="@+id/parentView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.bokecc.ccdocview.DocWebView
android:id="@+id/id_docppt_display"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<com.bokecc.ccdocview.DocView
android:id="@+id/id_doc_display"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
初始化文档缩放放大功能
parentView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
GestureViewBinder bind = GestureViewBinder.bind(this, idLectureDocArea, parentView);
bind.setFullGroup(true);
bind.setOnScaleListener(new GestureViewBinder.OnScaleListener() {
@Override
public void onScale(float scale) {
}
});
设置画笔和手势缩放的是能开关
//设置手势放大缩放文档
public void setGestureAction(boolean isGesture){
}
参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
isGesture | boolean | true:打开手势缩放放大文档功能,false:画笔功能,默认是走的false画笔功能 | 必选 |
例子:
@OnClick(R.id.id_lecture_draw_paint)
void showPaint() {
mDocView.setGestureAction(false);
}
@OnClick(R.id.id_lecture_draw_gesture)
void showGesture() {
mDocView.setGestureAction(true);
}
1.3 DocWebView控件
主要是处理ppt动画以及ppt动画翻页的相关逻辑。
1.2.1 设置DocView可见
public void setDocSetVisibility(DocView mDocView){
1、设为讲师/取消设为讲师
public boolean authUserTeacher(@NonNull String userId)
参数 | 参数说明 |
---|---|
userId | 指定的用户id |
public boolean cancleAuthUserTeacher(@NonNull String userId)
参数 | 参数说明 |
---|---|
userId | 指定的用户id |
2、授权标注/取消授权标注
public boolean authUserDraw(@NonNull String userId)
参数 | 参数说明 |
---|---|
userId | 指定的用户id |
public boolean cancleAuthUserDraw(@NonNull String userId)
参数 | 参数说明 |
---|---|
userId | 指定的用户id |
3、老师授权学生权限操作文档监听回调通知状态给应用层
需要去设置监听多媒体事件
public void setOnTalkerAuthDocListener(OnTalkerAuthDocListener onTalkerAuthDocListener)
/**
* 老师授权学生权限操作文档监听器
*/
public interface OnTalkerAuthDocListener{
/**
* 授权标注通知
*
* @param userid 当前被老师操作的用户id
* @param isAllowDraw <ul><li>true授权标注</li><li>false取消授权</li></ul>
*/
void onAuth(String userid, boolean isAllowDraw);
/**
* 设为讲师状态通知
*
* @param userid 当前被老师操作的用户id
* @param isAllowsetupteacher <ul><li>true设为讲师</li><li>false取消设为讲师</li></ul>
*/
void onSetTeacherStatus(String userid, boolean isAllowsetupteacher);
/**
* 设为讲师翻页监听
*/
void onSetTeacherToPage(DocInfo mDocInfo,int position);
/**
* 设为讲师文档发生变化通知
*/
void onSetTeacherToDoc(DocInfo mDocInfo,int position);
/**
* 学生被设为讲师以后,老师需要去监听学生的翻页事件
*
* @param position 当前被老师操作的用户id
*/
void onTeacherToTalkerAuth(int position);
}