SORU
17 AĞUSTOS 2010, Salı


Nasıl android tuval dolu bir üçgen çizmek için?

Android haritalar çizmek benim yönteminde aşağıdaki kodu kullanarak bu üçgen çiziyorum:

paint.setARGB(255, 153, 29, 29);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setAntiAlias(true);

Path path = new Path();
path.moveTo(point1_returned.x, point1_returned.y);
path.lineTo(point2_returned.x, point2_returned.y);
path.moveTo(point2_returned.x, point2_returned.y);
path.lineTo(point3_returned.x, point3_returned.y);
path.moveTo(point3_returned.x, point3_returned.y);
path.lineTo(point1_returned.x, point1_returned.y);
path.close();

canvas.drawPath(path, paint);

Bu pointX_returned alanlardan alacağım koordinatları. Temel olarak enlem ve boylam çizgileri. Sonuç güzel bir kare ama içeriden boş olduğunu ve bu nedenle haritada görebiliyorum. Bir şekilde bunu bir şekilde doldurmak için var mı?

CEVAP
17 AĞUSTOS 2010, Salı


Tamam yaptım. Başkasına ihtiyaç durumunda: bu kodu paylaşıyorum

super.draw(canvas, mapView, true);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

paint.setStrokeWidth(2);
paint.setColor(android.graphics.Color.RED);     
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setAntiAlias(true);

Point point1_draw = new Point();        
Point point2_draw = new Point();    
Point point3_draw = new Point();

mapView.getProjection().toPixels(point1, point1_draw);
mapView.getProjection().toPixels(point2, point2_draw);
mapView.getProjection().toPixels(point3, point3_draw);

Path path = new Path();
path.setFillType(Path.FillType.EVEN_ODD);
path.moveTo(point1_draw.x,point1_draw.y);
path.lineTo(point2_draw.x,point2_draw.y);
path.lineTo(point3_draw.x,point3_draw.y);
path.lineTo(point1_draw.x,point1_draw.y);
path.close();

canvas.drawPath(path, paint);

//canvas.drawLine(point1_draw.x,point1_draw.y,point2_draw.x,point2_draw.y, paint);

return true;

İpucu için teşekkürler Nicolas!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christopher Bill

    Christopher

    30 NİSAN 2009
  • Moodle

    Moodle

    11 Mayıs 2010
  • ShotgunSandwichENT

    ShotgunSandw

    3 EKİM 2012