public class PPTView extends RelativeLayout implements PPTVM.LPPPTFragmentInterface, LPAnimPPTRequestListener, WhiteboardView.LPShapeSendListener, Whiteboard.OnPageSelectedListener, WhiteboardView.OnWindowSizeListener, Whiteboard.onPageScrolledListener, androidx.lifecycle.LifecycleObserver
1.包含自动切换动态PPT和静态PPT逻辑,如果教室没有动态PPT,默认使用静态PPT 2.如果Android系统版本小于5.0,使用静态PPT
Created by Shubo on 2018/4/9.
限定符和类型 | 类和说明 |
---|---|
static interface |
PPTView.OnBitmapShapeListener
图片画笔选中
|
static interface |
PPTView.OnPPTErrorListener
动态PPT ERROR 回调
|
static interface |
PPTView.PPTStatusListener |
static interface |
PPTView.WebViewOpenFileChooseListener |
限定符和类型 | 字段和说明 |
---|---|
boolean |
isArrowShow |
boolean |
isDoubleTapScaleEnable |
boolean |
isFlingable |
boolean |
isNeedRequest |
boolean |
isTouchable |
构造器和说明 |
---|
PPTView(Context context) |
PPTView(Context context,
AttributeSet attrs) |
PPTView(Context context,
AttributeSet attrs,
int defStyleAttr) |
PPTView(Context context,
AttributeSet attrs,
int defStyleAttr,
int defStyleRes) |
限定符和类型 | 方法和说明 |
---|---|
void |
addLifecycle(androidx.lifecycle.Lifecycle lifecycle) |
void |
addPPTWhiteboardPage()
添加一页白板
|
void |
animPPTErrorFeedBack(int errorCode,
java.lang.String description) |
void |
animPPTFinishFeedBack() |
void |
attachLiveRoom(LiveRoom lr)
绑定liveRoom
|
void |
changeTouchAble(boolean isTouchable)
是否可以绘制画笔
|
void |
deletePPTWhiteboardPage(int pageId)
删除指定pageId白板
|
void |
destroy()
销毁
|
boolean |
didRoomContainsAnimPPT() |
boolean |
didRoomContainsH5PPT() |
void |
disableSwitchPPT()
禁止翻页
|
void |
eraseAllShapes()
擦除当前页所有的画笔
|
boolean |
eraseShape(Shape shape,
java.lang.String docId,
int page) |
void |
eraseShapes()
移除选中的shape
|
int |
getCurrentPageIndex()
获取当前PPT页数
|
DocListVM |
getDocListVM() |
LiveRoomImpl |
getLiveRoom() |
int |
getMaxPage() |
OnDoubleTapListener |
getOnDoubleTapListener() |
OnViewTapListener |
getOnViewTapListener()
单击
|
java.lang.String |
getPCDocId()
专业版小班课 get doc Id
|
boolean |
getPPTAuth() |
LPConstants.PPTEditMode |
getPPTEditMode()
获取PPT编辑模式
|
void |
getPPTPagePositionInfo(LaserShapeLayer.PositionInfo positionInfo)
获取PPTView显示的文档真实宽高与左边距/上边距
|
LPConstants.ShapeType |
getPptShapeType()
获取当前 ppt 的画笔模式
|
LPConstants.LPPPTShowWay |
getPPTShowWay() |
int |
getTotalPageNumber()
获取PPT总页数
|
void |
gotoNextPage()
翻到下一页
|
void |
gotoPrevPage()
翻回上一页
|
void |
hidePageView() |
void |
initDocList(java.util.List<LPDocListViewModel.DocModel> list)
初始化docList
|
void |
initPCParams(java.lang.String docId)
初始化专业小班课 doc Id
|
void |
invalidateCurrentPage() |
boolean |
isAnimPPTEnable()
当前是否是动态PPT
|
boolean |
isCurrentMaxPage() |
boolean |
isEditable()
当前PPT是否处于可编辑状态
|
boolean |
isFlingEnable()
PPT 是否打开手势滑动 (默认打开)
|
boolean |
isH5PPT(java.lang.String docId) |
boolean |
isHavePPT()
当前是否含有除白板以外的ppt
|
boolean |
isMultiWhiteboardEnable()
是否支持多白板功能
|
boolean |
isRemarksEnable()
课件备注功能是否开启
|
boolean |
isTouchable() |
void |
laserShapeUpdate(Shape shape,
LPWhiteboardViewInfo whiteboardViewInfo) |
void |
onAnimPPTLoadStart() |
void |
onDestroy() |
void |
onDoubleTapEnableChange(boolean enable) |
void |
onH5PageChangeFinish(LPAnimPPTPageChangeEndModel pageChangeEndModel)
动效ppt新增的翻页结束回调,根据js page_change_end
|
void |
onH5PageCountChange(java.lang.String docId,
int pageCount)
h5课件专用的页码信息回调(page_count_change)
|
boolean |
onInterceptTouchEvent(MotionEvent ev) |
void |
onPageScrolled() |
void |
onPageSelected(int position,
java.lang.String remarksInfo)
这里只更新静态,动态的在onH5PageChangeFinish中处理
|
void |
onRecordsAllReq(java.lang.String docId) |
void |
onSizeChange() |
void |
onZXYBMotionEvent(LPMotionEvent motionEvent) |
void |
reloadAnimPPT()
重试加载
|
void |
requestPageAllShapes(LPAnimPPTPageChangeEndModel animPPTPageChangeEndModel) |
void |
sendDrawTextConfirmed(java.lang.String textContent) |
void |
sendDrawTextConfirmed(java.lang.String beforeText,
java.lang.String textContent)
发送文字
|
void |
sendShape(Shape shape,
LPWhiteboardViewInfo whiteboardViewInfo) |
void |
sendShapeAppend(Shape shape,
LPWhiteboardViewInfo whiteboardViewInfo,
int index) |
void |
setAnimPPTAuth(boolean pptAuth)
|
boolean |
setAnimPPTEnable(boolean animPPTEnable)
注意:可能在任意时刻调用这个方法
|
void |
setCurrentPageIndex(int pageIndex)
设置当前PPT页数 (静态PPT有效)
|
void |
setCurrentWhiteboard(LPAnimPPTPageChangeEndModel animPPTPageChangeEndModel) |
void |
setCustomShapeStrokeWidth(float strokeWidth)
设置定制图形 线宽
|
void |
setDoubleTapScaleEnable(boolean isEnable)
双击放大开关
|
void |
setFlingEnable(boolean isFlipable)
PPT滑动开关
|
void |
setH5PlayMode(LPConstants.H5PlayMode playMode)
如果为 东方之星 H5 课件,调用此函数变更当前 播放模式
|
void |
setMaxPage(int maxIndex)
如果是学生的话,需要记录一个可以翻页的最大index
|
void |
setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener)
双击
|
void |
setOnPPTStateListener(OnPPTStateListener listener)
设置多白板添加/删除后的状态监听
|
void |
setOnShapeSelectedListener(Whiteboard.OnShapeSelectedListener shapeSelectedListener) |
void |
setOnViewTapListener(OnViewTapListener mViewTapListener)
单击监听
|
void |
setPaintColor(int paintColor)
设置画笔颜色
|
void |
setPaintTextSize(int textSize)
设置编辑文字大小 (12 px -- 80 px)
|
void |
setPCMaxPage(int maxIndex)
专业版小班课 设置最大页数
|
void |
setPPTBackgroundColor(int color)
设置ppt背景色
|
void |
setPPTCanvasMode(boolean isAllowDrawing)
设置PPT编辑状态
|
void |
setPPTEditMode(LPConstants.PPTEditMode pptEditMode)
设置PPT编辑模式
|
void |
setPPTErrorListener(PPTView.OnPPTErrorListener listener) |
void |
setPPTPageViewClickListener(OnClickListener clickListener) |
void |
setPPTShowWay(LPConstants.LPPPTShowWay pptShow)
设置PPT显示模式
|
void |
setPPTStatusListener(PPTView.PPTStatusListener pptStatusListener) |
void |
setPPTTurnPagesAuth(boolean pptAuth)
设置课件翻页权限
|
void |
setPreviewDoc(boolean isPreviewDoc)
设置是否为预览 ppt,预览 ppt 所有操作不发信令
|
void |
setRemarksEnable(boolean isEnable)
设置PPT备注功能
|
void |
setShapeStrokeWidth(float strokeWidth)
set stroke length of shape
|
void |
setShapeType(LPConstants.ShapeType shapeType)
绘制图形
|
void |
setShowPaintOwnerEnable(boolean isShowPaintOwnerEnable)
设置是否选中显示画笔归属信息
|
void |
setWebViewOpenFileChooser(PPTView.WebViewOpenFileChooseListener openFileChooser)
设置动效PPT webview调起文件选择器回调
|
void |
setZoomable(boolean zoomable)
设置可放大功能, 默认打开
|
void |
shapeUpdate(java.util.List<Shape> shapes,
LPWhiteboardViewInfo whiteboardViewInfo) |
void |
showPageView() |
void |
switchPPTPage(java.lang.String docId,
int pageNum)
切换指定文档的指定页面
|
void |
updatePage(int index,
boolean callWhiteboard,
boolean isSuper)
大班课才会走
|
void |
updatePCPage(LPResRoomPageChangeModel model,
boolean callWhiteboard)
专业版小班课 更新页码
接收page_change信令
|
void |
updateStaticPPT() |
public boolean isTouchable
public boolean isFlingable
public boolean isArrowShow
public boolean isDoubleTapScaleEnable
public boolean isNeedRequest
public PPTView(@NonNull Context context)
public PPTView(@NonNull Context context, @Nullable AttributeSet attrs)
public PPTView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr)
public PPTView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes)
public void setPPTPageViewClickListener(OnClickListener clickListener)
public boolean setAnimPPTEnable(boolean animPPTEnable)
animPPTEnable
- true 切为动态PPT,false切为静态PPTpublic boolean didRoomContainsAnimPPT()
public boolean didRoomContainsH5PPT()
public void attachLiveRoom(LiveRoom lr)
public void addLifecycle(androidx.lifecycle.Lifecycle lifecycle)
public void initPCParams(java.lang.String docId)
public void setPreviewDoc(boolean isPreviewDoc)
public java.lang.String getPCDocId()
public void setShapeType(LPConstants.ShapeType shapeType)
shapeType
- 更新当前 ppt 的画笔模式public void hidePageView()
public void showPageView()
public void setPaintColor(int paintColor)
paintColor
- public boolean isAnimPPTEnable()
public boolean isHavePPT()
public void setPPTCanvasMode(boolean isAllowDrawing)
isAllowDrawing
- true - doodle; false - normalpublic void setPPTEditMode(LPConstants.PPTEditMode pptEditMode)
pptEditMode
- 更改当前 ppt 编辑模式public LPConstants.PPTEditMode getPPTEditMode()
public LPConstants.ShapeType getPptShapeType()
public void initDocList(java.util.List<LPDocListViewModel.DocModel> list)
initDocList
在接口中 PPTVM.LPPPTFragmentInterface
public void setPPTShowWay(LPConstants.LPPPTShowWay pptShow)
setPPTShowWay
在接口中 PPTVM.LPPPTFragmentInterface
public LPConstants.LPPPTShowWay getPPTShowWay()
public void setFlingEnable(boolean isFlipable)
public void updatePage(int index, boolean callWhiteboard, boolean isSuper)
updatePage
在接口中 PPTVM.LPPPTFragmentInterface
index
- 翻页数callWhiteboard
- trueisSuper
- 是否过滤学生PPT翻页public void updatePCPage(LPResRoomPageChangeModel model, boolean callWhiteboard)
updatePCPage
在接口中 PPTVM.LPPPTFragmentInterface
callWhiteboard
- 是否发送翻页信令public void setMaxPage(int maxIndex)
PPTVM.LPPPTFragmentInterface
setMaxPage
在接口中 PPTVM.LPPPTFragmentInterface
public void setPCMaxPage(int maxIndex)
PPTVM.LPPPTFragmentInterface
setPCMaxPage
在接口中 PPTVM.LPPPTFragmentInterface
public void eraseShapes()
public int getTotalPageNumber()
public int getMaxPage()
public void requestPageAllShapes(LPAnimPPTPageChangeEndModel animPPTPageChangeEndModel)
requestPageAllShapes
在接口中 LPAnimPPTRequestListener
public void setCurrentWhiteboard(LPAnimPPTPageChangeEndModel animPPTPageChangeEndModel)
setCurrentWhiteboard
在接口中 LPAnimPPTRequestListener
public void invalidateCurrentPage()
public void setZoomable(boolean zoomable)
public void onAnimPPTLoadStart()
onAnimPPTLoadStart
在接口中 LPAnimPPTRequestListener
public void animPPTErrorFeedBack(int errorCode, java.lang.String description)
animPPTErrorFeedBack
在接口中 LPAnimPPTRequestListener
public void animPPTFinishFeedBack()
public boolean isH5PPT(java.lang.String docId)
isH5PPT
在接口中 LPAnimPPTRequestListener
@Deprecated public void setAnimPPTAuth(boolean pptAuth)
public void setPPTTurnPagesAuth(boolean pptAuth)
pptAuth
- public boolean getPPTAuth()
public int getCurrentPageIndex()
public void setCurrentPageIndex(int pageIndex)
public void setShapeStrokeWidth(float strokeWidth)
public void setCustomShapeStrokeWidth(float strokeWidth)
public void onSizeChange()
public boolean isEditable()
public boolean isFlingEnable()
public boolean isCurrentMaxPage()
public void sendShape(Shape shape, LPWhiteboardViewInfo whiteboardViewInfo)
sendShape
在接口中 WhiteboardView.LPShapeSendListener
public boolean eraseShape(Shape shape, java.lang.String docId, int page)
eraseShape
在接口中 WhiteboardView.LPShapeSendListener
public void shapeUpdate(java.util.List<Shape> shapes, LPWhiteboardViewInfo whiteboardViewInfo)
public void laserShapeUpdate(Shape shape, LPWhiteboardViewInfo whiteboardViewInfo)
public void sendShapeAppend(Shape shape, LPWhiteboardViewInfo whiteboardViewInfo, int index)
public void eraseAllShapes()
public DocListVM getDocListVM()
getDocListVM
在接口中 LPAnimPPTRequestListener
public void onRecordsAllReq(java.lang.String docId)
onRecordsAllReq
在接口中 LPAnimPPTRequestListener
public void changeTouchAble(boolean isTouchable)
public boolean isTouchable()
public void setPPTErrorListener(PPTView.OnPPTErrorListener listener)
public void onPageSelected(int position, java.lang.String remarksInfo)
onPageSelected
在接口中 Whiteboard.OnPageSelectedListener
position
- remarksInfo
- public void onH5PageChangeFinish(LPAnimPPTPageChangeEndModel pageChangeEndModel)
onH5PageChangeFinish
在接口中 Whiteboard.OnPageSelectedListener
pageChangeEndModel
- public void onH5PageCountChange(java.lang.String docId, int pageCount)
onH5PageCountChange
在接口中 Whiteboard.OnPageSelectedListener
docId
- pageCount
- public void setPaintTextSize(int textSize)
textSize
- public void sendDrawTextConfirmed(java.lang.String textContent)
public void sendDrawTextConfirmed(java.lang.String beforeText, java.lang.String textContent)
beforeText
- textContent
- public void setOnViewTapListener(OnViewTapListener mViewTapListener)
mViewTapListener
- public void setH5PlayMode(LPConstants.H5PlayMode playMode)
public void gotoNextPage()
public void gotoPrevPage()
public OnViewTapListener getOnViewTapListener()
public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener)
onDoubleTapListener
- public void setDoubleTapScaleEnable(boolean isEnable)
isEnable
- public OnDoubleTapListener getOnDoubleTapListener()
public void onDoubleTapEnableChange(boolean enable)
public void onPageScrolled()
public void setPPTBackgroundColor(@ColorInt int color)
color
- A single color value in the form 0xAARRGGBB.public void setRemarksEnable(boolean isEnable)
isEnable
- true 显示备注
false 隐藏备注public boolean isRemarksEnable()
public void disableSwitchPPT()
public boolean onInterceptTouchEvent(MotionEvent ev)
public boolean isMultiWhiteboardEnable()
public void setOnPPTStateListener(OnPPTStateListener listener)
listener
- 监听listenenrpublic void addPPTWhiteboardPage()
public void deletePPTWhiteboardPage(int pageId)
pageId
- 删除白板的pageIdpublic void switchPPTPage(java.lang.String docId, int pageNum)
docId
- 文档docIdpageNum
- 页码public void getPPTPagePositionInfo(LaserShapeLayer.PositionInfo positionInfo)
public void setShowPaintOwnerEnable(boolean isShowPaintOwnerEnable)
isShowPaintOwnerEnable
- true 显示
false 不显示public void onDestroy()
public void destroy()
public void setPPTStatusListener(PPTView.PPTStatusListener pptStatusListener)
public void reloadAnimPPT()
public void setWebViewOpenFileChooser(PPTView.WebViewOpenFileChooseListener openFileChooser)
openFileChooser
- public void setOnShapeSelectedListener(Whiteboard.OnShapeSelectedListener shapeSelectedListener)
public LiveRoomImpl getLiveRoom()
public void updateStaticPPT()
public void onZXYBMotionEvent(LPMotionEvent motionEvent)