我在Android Google地图api上创建了自定义标记,但在显示时会显示模糊图像。如何获得更好的自定义标记,并且在低分辨率下不会出现模糊(我的标记分辨率为25x26像素)。我没有使用高分辨率图像,如250x250像素,因为它在地图中显示了一个大的自定义标记。
答案 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
请注意,您实际上必须展开xxhdpi
和xxxhdpi
的图片。在这种情况下,您可能希望从更高分辨率的图像开始。