Gewusst wie: zeichnen von Bézier-Kurve in Android
Habe ich eine Anforderung zum erstellen von Bézier-Kurve in meinem Projekt. Für diesen Zweck, die ich bin, die Zeichnung einer Ansicht mit paint, aber das problem ist, dass ich nicht immer die genaue Form für mein Bedürfnis, wie oben im Bild zu sehen ist. Also bitte helfen Sie mir mit Ihren Lösungen und Veränderungen oder änderungen in meinem code. Vielen Dank im Voraus.
Code, den ich benutze zum erstellen von Bézier-Kurve:
public class DrawView extends View {
public DrawView (Context context) {
super (context);
}
protected void onDraw (Canvas canvas) {
super.onDraw (canvas);
Paint pLine = new Paint () {{
setStyle (Paint.Style.STROKE);
setAntiAlias (true);
setStrokeWidth (1.5f);
setColor (Color.RED); //Line color
}};
Paint pLineBorder = new Paint () {{
setStyle (Paint.Style.STROKE);
setAntiAlias (true);
setStrokeWidth (3.0f);
setStrokeCap (Cap.ROUND);
setColor (Color.RED); //Darker version of the color
}};
Path p = new Path ();
Point mid = new Point ();
//...
Point start =new Point (30,90);
Point end =new Point (canvas.getWidth ()-30,140);
mid.set ((start.x + end.x) / 2, (start.y + end.y) / 2);
//Draw line connecting the two points:
p.reset ();
p.moveTo (start.x, start.y);
p.quadTo ((start.x + mid.x) / 2, start.y, mid.x, mid.y);
p.quadTo ((mid.x + end.x) / 2, end.y, end.x, end.y);
canvas.drawPath (p, pLineBorder);
canvas.drawPath (p, pLine);
}
}
MainActivity
public class MainActivity extends Activity {
private DrawView drawView;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
drawView = new DrawView (this);
setContentView (drawView);
}
}
Meine Tatsächlichen Bedarf:
Ausgabe die ich erhalte:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach langem Kampf fand ich die Ursache für meine Problem von Grund auf neu.
Vielen Dank für die tool, die mir geholfen, die Koordinaten und auch die blog , die zeigte mir die genaue Probe für mein Bedürfnis. Endlich, mein code ist wie folgt:
Sie haben nicht geschlossen Ihr Weg und hat nicht eine Farbe, um Sie zu malen.