Merge pull request #9039 from osmandapp/Text_scale_map_icon37
Text scale map icon fix
This commit is contained in:
commit
13875cf3be
9 changed files with 31 additions and 18 deletions
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="map_trans_seek_size">120dp</dimen>
|
||||
<dimen name="map_trans_seek_size">120dp</dimen>
|
||||
<dimen name="map_widget_text_size">35sp</dimen>
|
||||
<dimen name="map_top_widget_text_size">33sp</dimen>
|
||||
<dimen name="map_widget_text_size_small">23sp</dimen>
|
||||
|
@ -120,13 +120,14 @@
|
|||
<dimen name="multi_selection_menu_padding_top">20dp</dimen>
|
||||
<dimen name="multi_selection_menu_padding_bottom">23dp</dimen>
|
||||
|
||||
<dimen name="grid_menu_item_width">180dp</dimen>
|
||||
<dimen name="grid_menu_item_bottom_top_margin">24dp</dimen>
|
||||
<dimen name="grid_menu_item_sides_margin">60dp</dimen>
|
||||
<dimen name="grid_menu_item_width">180dp</dimen>
|
||||
<dimen name="grid_menu_item_bottom_top_margin">24dp</dimen>
|
||||
<dimen name="grid_menu_item_sides_margin">60dp</dimen>
|
||||
|
||||
<dimen name="bottom_sheet_menu_peek_height">450dp</dimen>
|
||||
<dimen name="side_of_the_world_button_size">54dp</dimen>
|
||||
|
||||
<dimen name="toolbar_height">64dp</dimen>
|
||||
<dimen name="toolbar_height">64dp</dimen>
|
||||
<dimen name="poi_icon_size">24dp</dimen>
|
||||
|
||||
</resources>
|
|
@ -90,6 +90,7 @@
|
|||
<dimen name="dialog_content_bottom_margin">16dp</dimen>
|
||||
<dimen name="local_size_height">34dp</dimen>
|
||||
<dimen name="standard_icon_size">24dp</dimen>
|
||||
<dimen name="poi_icon_size">16dp</dimen>
|
||||
<dimen name="gpx_small_icon_margin">3dp</dimen>
|
||||
<dimen name="gpx_small_text_margin">14dp</dimen>
|
||||
<dimen name="gpx_text_top_margin">6dp</dimen>
|
||||
|
|
|
@ -203,7 +203,7 @@ public class AudioNotesLayer extends OsmandMapLayer implements
|
|||
public void getRecordingsFromPoint(PointF point, RotatedTileBox tileBox, List<? super Recording> am) {
|
||||
int ex = (int) point.x;
|
||||
int ey = (int) point.y;
|
||||
int compare = getRadiusPoi(tileBox);
|
||||
int compare = getScaledTouchRadius(activity.getMyApplication(), getRadiusPoi(tileBox));
|
||||
int radius = compare * 3 / 2;
|
||||
for (Recording n : plugin.getAllRecordings()) {
|
||||
int x = (int) tileBox.getPixXFromLatLon(n.getLatitude(), n.getLongitude());
|
||||
|
|
|
@ -21,7 +21,6 @@ import androidx.annotation.NonNull;
|
|||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresPermission;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.CallbackWithObject;
|
||||
|
@ -223,15 +222,21 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
}
|
||||
}
|
||||
}
|
||||
float scale = 1f;
|
||||
if (!pressedLatLonSmall.isEmpty() || !pressedLatLonFull.isEmpty()) {
|
||||
scale = activity.getMyApplication().getSettings().TEXT_SCALE.get();
|
||||
}
|
||||
for (LatLon latLon : pressedLatLonSmall) {
|
||||
int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude());
|
||||
int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude());
|
||||
canvas.drawBitmap(pressedBitmapSmall, x - pressedBitmapSmall.getWidth() / 2, y - pressedBitmapSmall.getHeight() / 2, paint);
|
||||
Rect destRect = getIconDestinationRect(x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), scale);
|
||||
canvas.drawBitmap(pressedBitmapSmall, null, destRect, paint);
|
||||
}
|
||||
for (LatLon latLon : pressedLatLonFull) {
|
||||
int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude());
|
||||
int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude());
|
||||
canvas.drawBitmap(pressedBitmap, x - pressedBitmap.getWidth() / 2, y - pressedBitmap.getHeight() / 2, paint);
|
||||
Rect destRect = getIconDestinationRect(x, y, pressedBitmap.getWidth(), pressedBitmap.getHeight(), scale);
|
||||
canvas.drawBitmap(pressedBitmap, null, destRect, paint);
|
||||
}
|
||||
|
||||
if (mapQuickActionLayer != null && mapQuickActionLayer.isInMovingMarkerMode())
|
||||
|
|
|
@ -216,7 +216,7 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
|||
}
|
||||
|
||||
private void getFavoriteFromPoint(RotatedTileBox tb, PointF point, List<? super FavouritePoint> res) {
|
||||
int r = getDefaultRadiusPoi(tb);
|
||||
int r = getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb));
|
||||
int ex = (int) point.x;
|
||||
int ey = (int) point.y;
|
||||
for (FavouritePoint n : favorites.getFavouritePoints()) {
|
||||
|
|
|
@ -580,7 +580,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex
|
|||
}
|
||||
|
||||
public void getWptFromPoint(RotatedTileBox tb, PointF point, List<? super WptPt> res) {
|
||||
int r = getDefaultRadiusPoi(tb);
|
||||
int r = getScaledTouchRadius(view.getApplication(), getDefaultRadiusPoi(tb));
|
||||
int ex = (int) point.x;
|
||||
int ey = (int) point.y;
|
||||
List<SelectedGpxFile> selectedGpxFiles = new ArrayList<>(selectedGpxHelper.getSelectedGPXFiles());
|
||||
|
|
|
@ -637,6 +637,14 @@ public abstract class OsmandMapLayer {
|
|||
return rect;
|
||||
}
|
||||
|
||||
public int getScaledTouchRadius(OsmandApplication app, int radiusPoi) {
|
||||
float textScale = app.getSettings().TEXT_SCALE.get();
|
||||
if (textScale < 1.0f) {
|
||||
textScale = 1.0f;
|
||||
}
|
||||
return (int) textScale * radiusPoi;
|
||||
}
|
||||
|
||||
public abstract class MapLayerData<T> {
|
||||
public int ZOOM_THRESHOLD = 1;
|
||||
public RotatedTileBox queriedBox;
|
||||
|
|
|
@ -153,9 +153,8 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
|
|||
if (objects != null) {
|
||||
int ex = (int) point.x;
|
||||
int ey = (int) point.y;
|
||||
final int rp = getRadiusPoi(tb);
|
||||
int compare = rp;
|
||||
int radius = rp * 3 / 2;
|
||||
int compare = getScaledTouchRadius(view.getApplication(), getRadiusPoi(tb));
|
||||
int radius = compare * 3 / 2;
|
||||
try {
|
||||
for (int i = 0; i < objects.size(); i++) {
|
||||
Amenity n = objects.get(i);
|
||||
|
@ -176,8 +175,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
|
|||
@Override
|
||||
public void initLayer(OsmandMapTileView view) {
|
||||
this.view = view;
|
||||
|
||||
poiSize = dpToPx(view.getContext(), 16f);
|
||||
poiSize = app.getResources().getDimensionPixelSize(R.dimen.poi_icon_size);
|
||||
poiColorFilter = new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
|
||||
paintIconBackground = new Paint();
|
||||
poiBackground = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_orange_poi_shield);
|
||||
|
|
|
@ -144,7 +144,7 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa
|
|||
List<TransportStop> objects) {
|
||||
int ex = (int) point.x;
|
||||
int ey = (int) point.y;
|
||||
final int rp = getRadiusPoi(tb);
|
||||
final int rp = getScaledTouchRadius(mapActivity.getMyApplication(), getRadiusPoi(tb));
|
||||
int radius = rp * 3 / 2;
|
||||
try {
|
||||
TreeSet<String> ms = new TreeSet<>();
|
||||
|
|
Loading…
Reference in a new issue