public class KnifeLock extends View {
private Paint mPaint;//画笔
private List<ReceetPointF> points = new ArrayList<>();//初始化时候的九个点的坐标
private List<ReceetPointF> drawPoints = new ArrayList<>();//绘制划线的点坐标
private Path mPath;//绘制的Path
private OnSelectListen mListen;//监听
private boolean canUse = true;//当前是否可用
private int PointColor = Color.BLACK;
private int LineColor = Color.BLACK;
private int ErrorColor = Color.RED;
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
Destroy();
}
public interface OnSelectListen {
void selectStart();
void onselect(int num);
void selectComplete();
}
public void setOnSelectListen(OnSelectListen listen) {
mListen = listen;
}
void Destroy(){
mListen = null;
points.clear();
drawPoints.clear();
mPath = null;
mPaint = null;
}
static class ReceetPointF {
float x;
float y;
float size;
RectF rectF;
int num;
void set(float xv, float yv, float sv, int n) {
x = xv;
y = yv;
size = sv;
num = n;
rectF = new RectF(x - sv, y - sv, x + sv, y + sv);
}
boolean isInRect(float xp, float yp) {
return rectF.contains(xp, yp);
}
}
Android九宫解锁源码
最新推荐文章于 2023-12-09 17:30:06 发布