Android - рисование пути как наложение на MapView

У меня есть класс, который расширяет Наложение и реализует Наложение. Snappable. Я переопределил его метод ничьей:

@Override
public void draw(Canvas canvas, MapView mv, boolean shadow)
{
    Projection projection = mv.getProjection();
    ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>();
    //Creating geopoints - ommited for readability
    Path p = new Path();
    for (int i = 0; i < geoPoints.size(); i++) {
    if (i == geoPoints.size() - 1) {
        break;
    }
    Point from = new Point();
    Point to = new Point();
    projection.toPixels(geoPoints.get(i), from);
    projection.toPixels(geoPoints.get(i + 1), to);
    p.moveTo(from.x, from.y);
    p.lineTo(to.x, to.y);
    }
    Paint mPaint = new Paint();
    mPaint.setStyle(Style.FILL);
    mPaint.setColor(0xFFFF0000);
    mPaint.setAntiAlias(true);
    canvas.drawPath(p, mPaint);
    super.draw(canvas, mv, shadow);
}

Как Вы видите, я составляю список точек на карте, и я хочу, чтобы они сформировали многоугольную форму.

Теперь, проблема состоит в том, что, когда я установил стиль краски, чтобы быть ЗАЛИВКОЙ или FILL_AND_STROKE, ничто не обнаруживается на экране, но когда я установил его, чтобы быть просто штрихом и установить штриховую ширину, это на самом деле тянет то, что это, как предполагается, тянет.

Теперь, я искал решение, но ничто не подходит. Можно ли сказать мне, если я что-то отсутствовало для установки в самом коде или является там некоторыми видами ограничений при привлечении холстов Наложения?

Спасибо

5
задан Rabas 14 June 2010 в 09:27
поделиться

1 ответ

Несколько моментов. Вы должны использовать p.moveTo(from.x, from.y); только один раз, т.е. в первый раз, когда вы хотите сделать это в первый раз.

Попробуйте так установить атрибуты для объекта paint, используемого для закрашивания полигона.

polygonPaint = new Paint();
polygonPaint.setStrokeWidth(2); 
polygonPaint.setStyle(Paint.Style.STROKE);
polygonPaint.setAntiAlias(true); 

Надеюсь, это поможет.

4
ответ дан 15 December 2019 в 00:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: