FIX: rescale arrow if stroke is too large

2.25 is the ratio of the stroke size compared to the image size.
This commit is contained in:
Everton Hermann 2020-06-27 10:39:53 +02:00
parent 90b2814faa
commit c7885ec472

View file

@ -294,10 +294,17 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont
// int len = (int) (distSegment / pxStep);
float pdx = x - px;
float pdy = y - py;
float scale=attrs.paint3.getStrokeWidth()/(actionArrow.getWidth()/2.25f);
float scaledWidth=actionArrow.getWidth();
matrix.reset();
matrix.postTranslate(0, -actionArrow.getHeight() / 2f);
matrix.postRotate((float) angle, actionArrow.getWidth() / 2f, 0);
matrix.postTranslate(px + pdx - actionArrow.getWidth() / 2f, py + pdy);
if(scale>=1.0f)
{
matrix.postScale(scale,scale);
scaledWidth*=scale;
}
matrix.postTranslate(px + pdx - scaledWidth/ 2f, py + pdy);
canvas.drawBitmap(actionArrow, matrix, paintIconAction);
} else {
px = x;