The best solution I found for this problem (which I had today) is to change the scaling in the tile source (I use my own version of 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);
Scale variation according to screen density is a relatively good solution. During my testing, some of the images became slightly blurry, but if you zoom out for this unforeseen situation, you will get a very good result.
This is not my BTW solution, I found it among OSMDROID issues on Github . Thank stefangab95
source share