Лучшее решение, которое я нашел для этой проблемы (которое у меня было сегодня ранее), это изменить масштабирование в источнике плиток (я использую свою собственную версию OpenStreetMap):
final float scale = getBaseContext().getResources().getDisplayMetrics().density;
final int newScale = (int) (256 * scale);
String[] OSMSource = new String[2];
OSMSource[0] = "http://a.tile.openstreetmap.org/";
OSMSource[1] = "http://b.tile.openstreetmap.org/";
XYTileSource MapSource = new XYTileSource(
"OSM",
null,
1,
18,
newScale,
".png",
OSMSource
);
map.setTileSource(MapSource);
Изменение масштаба в соответствии с плотностью экрана - относительно хорошее решение. Во время моего тестирования некоторые изображения стали слегка размытыми, но если вы уменьшите масштабирование для этого случая, вы получите очень хороший результат.
Кстати, это не мое решение, я нашел его среди проблем с OSMDROID на Github . Спасибо stefangab95 .