Es gibt Bälle in meiner App, die nur durch das Display fliegen. Sie zeichnen, wie ich will. Aber jetzt möchte ich die Spur hinter ihnen zeichnen.Android Draw Ball Spur
Alles, was ich machen könnte, ist nur durch canvas.drawPath
etwas Zeichnung wie folgendes Bild:
Aber es ist nicht das, was ich will. Es sollte spitzen Schwanz haben und Farbverlauf wie folgt aus:
Ich habe keine Ahnung, wie es zu machen. Versucht BitmapShader
- konnte etwas nicht richtig machen. Hilfe bitte.
Code:
Zunächst einmal gibt es Point
Klasse für die Position auf dem Display:
class Point {
float x, y;
...
}
Und Spur als Warteschlange von Point
gespeichert ist:
private ConcurrentLinkedQueue<Point> trail;
Es spielt keine Es spielt keine Rolle, wie es sich füllt, nur wissen, es hat eine Größenbeschränkung:
trail.add(position);
if(trail.size() > TRAIL_MAX_COUNT) {
trail.remove();
}
Und Zeichnung in DrawTrail
Verfahren geschehen:
private void DrawTrail(Canvas canvas) {
trailPath.reset();
boolean isFirst = true;
for(Point p : trail) {
if(isFirst) {
trailPath.moveTo(p.x, p.y);
isFirst = false;
} else {
trailPath.lineTo(p.x, p.y);
}
}
canvas.drawPath(trailPath, trailPaint);
}
By the way, ist trailPaint
gerade richtig fett Farbe :)
trailPaint = new Paint();
trailPaint.setStyle(Paint.Style.STROKE);
trailPaint.setColor(color);
trailPaint.setStrokeWidth(radius * 2);
trailPaint.setAlpha(150);
Geben Sie Ihren Code mindestens – Dimezis
ein @ Dimezis – Ircover
@Ircover können Sie den vollständigen Code posten, damit ich das Problem replizieren kann. – Gattsu