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:
parent
90b2814faa
commit
c7885ec472
1 changed files with 8 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue