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

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • khloe brooks

    khloe brooks

    25 Temmuz 2011
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006