如何修复模糊的自定义标记Android谷歌地图API

时间:2017-09-24 14:48:26

标签: java android google-maps google-maps-markers resolution

我在Android Google地图api上创建了自定义标记,但在显示时会显示模糊图像。如何获得更好的自定义标记,并且在低分辨率下不会出现模糊(我的标记分辨率为25x26像素)。我没有使用高分辨率图像,如250x250像素,因为它在地图中显示了一个大的自定义标记。

1 个答案:

答案 0 :(得分:2)

您的问题在技术上与此问题重复:

Different resolution support android

我在技术上说,因为上面包含的信息足以让你回答你自己的问题,但是如何把所有东西拼凑起来也许并不明显。答案的要点是Android提供了以下可绘制文件夹,以涵盖您的应用程序在实际设备上运行时可能遇到的各种分辨率。 Android将使用适合您正在运行的应用程序的分辨率的图像。取自重复的链接:

res/drawable        (default)
res/drawable-ldpi/  (240x320 and nearer resolution)
res/drawable-mdpi/  (320x480 and nearer resolution)
res/drawable-hdpi/  (480x800, 540x960 and nearer resolution)
res/drawable-xhdpi/  (720x1280 - Samsung S3, Micromax Canvas HD etc)
res/drawable-xxhdpi/ (1080x1920 - Samsung S4, HTC one, Nexus 5, etc)
res/drawable-xxxhdpi/ (1440X2560 - Nexus 6,Samsung S6edge).

假设您有一个自定义的Google地图标记,其原始版本为100x200,即100像素宽,200像素高。这大致适合许多捆绑标记的样子。现在,假设您要支持hdpi解决方案。好吧,从上面的列表中,您将期待480x800分辨率。我们还假设您希望自定义地图标记以纵向或48像素宽占据屏幕宽度的10%。然后你可以缩小原始标记图像的副本,使宽度为48像素,即48x96像素。

现在,将此自定义调整大小的图像放入drawable/hdpi文件夹。当Android以hdpi分辨率运行时,它会在渲染标记时使用此图像,并且不会显得模糊。

为了使流程清晰,以上是上述内容,但这次使用了您可以用于自定义Google地图标记的精确分辨率。我再次假设您的原件是100x200。

folder                | device size | marker size
res/drawable          | (default)   | none (you don't need one here)
res/drawable-ldpi/    | 240x320     | 24x48
res/drawable-mdpi/    | 320x480     | 32x64
res/drawable-hdpi/    | 480x800     | 48x96
res/drawable-xhdpi/   | 720x1280    | 72x144
res/drawable-xxhdpi/  | 1080x1920   | 108x216
res/drawable-xxxhdpi/ | 1440X2560   | 144x288

请注意,您实际上必须展开xxhdpixxxhdpi的图片。在这种情况下,您可能希望从更高分辨率的图像开始。