Android白板与文档组件

优质
小牛编辑
131浏览
2023-12-01

白板与文档组件的核心类是CCDocViewManager,获取核心类的实例: CCDocViewManager mDocViewManager = CCDocViewManager.getInstance();

1.2 画笔和文档的历史数据

进入房间首先要获取画笔和文档的历史数据

  mDocViewManager.setDocHistory(mDocView,mWebView);

object 参数说明:

参数名称参数类型说明是否必须
mDocViewDocView画板和图片的view必选
mWebViewDocWebViewppt动画和ppt翻页的view必选

1.2 DocView控件

主要是处理画笔数据、白板、图片逻辑

1.2.1设置白板和文档的宽高

mDocView.setWhiteboard(width, height);

object 参数说明:

参数名称参数类型说明是否必须
widthint手机屏幕的宽必选
heightint手机屏幕的高必选

1.2.2 设置DocWebView可见

  public void setDocWebViewSetVisibility(DocWebView mDocView){

1.2.3 设置手指触发画笔(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

 public void setTouchInterceptor(boolean isInterceptor,int role) {

object 参数说明:

参数名称参数类型说明是否必须
isInterceptorbooleantrue:支持画笔;false:不支持画笔必选
roleint用户角色画笔默认值,老师:默认为红色;互动者:默认为蓝色可选

1.2.4 设置画笔的粗细(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

public void setStrokeWidth(float width) {

object 参数说明:

参数名称参数类型说明是否必须
widthfloat设置画笔的粗细,精度为float类型必选

1.2.5 设置画笔的颜色(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

 public void setColor(int color, int colorStr) {

object 参数说明:

参数名称参数类型说明是否必须
colorint画笔的颜色必选
colorStrint当前的颜色,需要给服务端传过去的必选

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){
}

参数说明:

参数名称参数类型说明是否必须
isEraserbooleantrue打开橡皮檫功能,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){
}

参数说明:

参数名称参数类型说明是否必须
isGesturebooleantrue:打开手势缩放放大文档功能,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);
}