4

我正在编写一个包含使用 Google Maps API 的地图的 Android 应用程序。

我使用自己的扩展名加载自定义地图图块com.google.android.gms.maps.model.UrlTileProvider

我有两组地图图块:一组设计用于高密度屏幕,另一组设计用于低密度屏幕。更高密度的地图瓦片集具有更大的文本等。两组都使用 256x256 像素的地图图块大小。

我根据从以下获得的屏幕密度在两组之间切换:

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Float density = displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT;

到目前为止,一切都很好。

应根据密度显示适当的地图图块集。

然而,在更高密度的设备上(其中许多像素被视为一个逻辑密度独立像素 (DiP/DP)),每个地图瓦片像素都被缩放以匹配一个设备 DiP/DP。换句话说,设备的密度越高,渲染时地图图块的外观就越差。

我已经玩了一段时间的UrlTileProvider构造函数宽度/高度,但它们似乎没有任何效果。

而且我在 Google Maps API 中找不到任何设置来帮助我解决问题。

我还没有在 stackoverflow 或其他网站上找到任何解决方案。

有谁知道如何解决我的问题?

4

2 回答 2

0

如果你不控制服务器,那么你就无法控制质量。

您可以从缩放级别高 1 加载 4 张图像,并将它们合并为大小为 512 x 512 的位图,以便在 xhdpi 设备上使用。我将首先检查 TileProvider 是否正确处理更大的图像。

于 2013-08-05T07:28:48.663 回答
0

Drawable您可以从相应的文件夹中将您的图块作为 s 检索drawable,而不是尝试手动解析分类器。

于 2013-08-01T14:20:03.983 回答