public MyCustomToggleDrawable(Context context) { super(context, 0, R.style.CustomToggleDrawableStyle); float radius = Math.round(getIntrinsicWidth()*0.5f); add(Bezier.quadrant(radius, 0), Bezier.line(radius, radius, radius, -radius)); add(Bezier.quadrant(radius, 90), Bezier.line(-radius, radius, radius, radius)); add(Bezier.quadrant(radius, 180), Bezier.line(-radius, radius, -radius, -radius)); add(Bezier.quadrant(radius, 270), Bezier.line(-radius, -radius, radius, -radius)); } }
public ArrowModel(float length, float headLength, float stroke) { // top head topHead = Bezier.line(0, 0, -headLength, 0); topHead.offset(stroke/2, 0); topHead.rotate(0, 0, HEAD_ANGLE); topHead.offset(length / 2, 0); // body body = Bezier.line(length / 2, 0, -length / 2, 0); // bottom head bottomHead = Bezier.line(0, 0, -headLength, 0); bottomHead.offset(stroke/2, 0); bottomHead.rotate(0, 0, -HEAD_ANGLE); bottomHead.offset(length / 2, 0); } }
public SearchModel(float radius, float barLength) { float size = (float) ((2*radius + barLength)/Math.sqrt(2)); float center = radius - size/2; // quadrants bottomRightQuadrant = Bezier.quadrant(radius, 0).offset(center, center); bottomLeftQuadrant = Bezier.quadrant(radius, 90).offset(center, center); topLeftQuadrant = Bezier.quadrant(radius, 180).offset(center, center); topRightQuadrant = Bezier.quadrant(radius, 270).offset(center, center); // handle handle = Bezier.line(0, 0, barLength, 0) .offset(radius, 0) .rotate(0, 0, HANDLE_ANGLE) .offset(center, center); } }