public abstract class Shape
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
int |
dashType |
boolean |
hasAddedToPaintList |
java.lang.String |
id |
boolean |
isHoverTrace |
Paint |
mPaint |
java.lang.String |
number |
float |
rotateAngle |
java.lang.String |
sendByUserName |
java.lang.String |
sendByUserNumber |
LPConstants.LPUserType |
userRole |
构造器和说明 |
---|
Shape(Paint paint) |
限定符和类型 | 方法和说明 |
---|---|
abstract void |
appendPoint(LPPointF point) |
PointF |
calcRotatePoint(float srcPointX,
float srcPointY,
float pCenterX,
float pCenterY,
float angle)
坐标系按照某一点进行旋转
|
void |
copy(Shape shape) |
abstract void |
copyShape(Shape shape) |
boolean |
equals(java.lang.Object obj) |
abstract RectF |
getBoundary()
获取shape 范围参数
|
int |
getIn_angle(float x1,
float x2,
float y1,
float y2,
float z1,
float z2)
顺时针夹角
|
Paint |
getPaint() |
abstract java.util.ArrayList<LPPointF> |
getPoints()
发送用点集
|
LPPointF |
getSourcePoint() |
abstract boolean |
isBoundaryOverlap(RectF rect)
判断边界是否相交
|
abstract boolean |
isInBoundary(float x,
float y)
判断点击事件 是否位于shape 范围
|
abstract boolean |
isTouchShape(float x,
float y)
判断是否点击到shape
|
abstract boolean |
isValid()
图形是否有效.
|
abstract void |
moveShapeBy(float dx,
float dy)
move shape by
|
abstract void |
onDraw(Canvas canvas,
Matrix matrix)
绘制图形 在onDraw里调用 避免复杂的计算和内存分配
param canvas
|
abstract void |
onDraw(Canvas canvas,
Matrix matrix,
ShapeRegionInfo regionInfo)
绘制图形
|
abstract void |
scaleShapeBy(int scaleDir,
float scaleX,
float scaleY,
float offsetX,
float offsetY,
RectF boundaryRect,
boolean isMoreSelect)
scale shape to sourcePoint
|
abstract void |
setAngle(float angle)
设置当前角度
|
void |
setPaint(Paint paint) |
void |
setSourcePoint(LPPointF sourcePoint) |
public java.lang.String id
public java.lang.String number
public Paint mPaint
public boolean hasAddedToPaintList
public int dashType
public java.lang.String sendByUserName
public java.lang.String sendByUserNumber
public float rotateAngle
public boolean isHoverTrace
public LPConstants.LPUserType userRole
public void setPaint(Paint paint)
public Paint getPaint()
public void setSourcePoint(LPPointF sourcePoint)
public LPPointF getSourcePoint()
public abstract void onDraw(Canvas canvas, Matrix matrix)
matrix
- public abstract void onDraw(Canvas canvas, Matrix matrix, ShapeRegionInfo regionInfo)
canvas
- 画布matrix
- 背景matrixregionInfo
- 画笔有效区域,超出区域将截取不显示public abstract boolean isInBoundary(float x, float y)
x
- rawXy
- rawYpublic abstract boolean isTouchShape(float x, float y)
x
- rawXy
- rawYpublic abstract RectF getBoundary()
public abstract void moveShapeBy(float dx, float dy)
dx
- distance by xdy
- distance by ypublic abstract void scaleShapeBy(int scaleDir, float scaleX, float scaleY, float offsetX, float offsetY, @Nullable RectF boundaryRect, boolean isMoreSelect)
scaleDir
- scale directionscaleX
- X xiascaleY
- Y xiaoffsetX
- 缩放X轴相对原来中心点偏移量offsetY
- 缩放Y轴相对原来中心点偏移量isMoreSelect
- 是否多选缩放,需要处理旋转角度在90 ~ 270scaleDir置相反boundaryRect
- 外接框范围public abstract boolean isBoundaryOverlap(RectF rect)
rect
- public abstract boolean isValid()
public abstract void appendPoint(LPPointF point)
public abstract java.util.ArrayList<LPPointF> getPoints()
public abstract void copyShape(Shape shape)
public abstract void setAngle(float angle)
angle
- 顺时针角度public void copy(Shape shape)
public boolean equals(java.lang.Object obj)
equals
在类中 java.lang.Object
public PointF calcRotatePoint(float srcPointX, float srcPointY, float pCenterX, float pCenterY, float angle)
srcPointX
- 需要旋转的X坐标srcPointY
- 需要旋转的Y坐标pCenterX
- 旋转中心X坐标pCenterY
- 旋转中心Y坐标angle
- 旋转角度public int getIn_angle(float x1, float x2, float y1, float y2, float z1, float z2)
x1
- 中心Xx2
- 中心Yy1
- 圆心垂直Xy2
- 圆心垂直Yz1
- z2
-