W mojej aplikacji są kule, które po prostu latają przez wyświetlacz. Rysują, jak chcę. Ale teraz chcę wytyczyć ślad za nimi.Android szlak balowy remis
Wszystko co robię jest tylko rysunek przez canvas.drawPath
coś jak na poniższym rysunku:
Ale to nie jest to, co chcę. Powinien on mieć spiczasty ogon i kolor gradientu tak:
nie mam pojęcia jak to zrobić. Próbowałem BitmapShader
- nie mogłem zrobić czegoś dobrze. Prosimy o pomoc.
Kod:
Przede wszystkim, nie ma Point
klasa dla pozycji na wyświetlaczu:
class Point {
float x, y;
...
}
i ścieżka jest przechowywana w kolejce Point
:
private ConcurrentLinkedQueue<Point> trail;
nie robi Nieważne, jak się wypełnia, tylko wiedz, że ma limit rozmiaru:
trail.add(position);
if(trail.size() > TRAIL_MAX_COUNT) {
trail.remove();
}
i rysowania się w DrawTrail
metody:
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);
}
przy okazji, trailPaint
farba jest po prostu naprawdę gruby :)
trailPaint = new Paint();
trailPaint.setStyle(Paint.Style.STROKE);
trailPaint.setColor(color);
trailPaint.setStrokeWidth(radius * 2);
trailPaint.setAlpha(150);
Zamieść swój kod co najmniej – Dimezis
czy to @Dimezis – Ircover
@Ircover możesz przesłać kompletny kod, dzięki czemu będę mógł powtórzyć problem. – Gattsu