2017-09-24 143 views
2

我在Android谷歌地图api上创建了自定义标记,但它显示时会给出模糊的图像。我如何获得更好的令人惊叹的自定义标记,并且在低分辨率下不会模糊(我的标记分辨率为25x26像素)。我没有使用像250x250像素这样的高分辨率图像,因为它在地图上显示了一个很大的自定义标记。如何修复模糊的自定义标记Android谷歌地图api

回答

1

你的问题在技术上是这个问题的一个副本:

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). 

假设你有一个自定义谷歌地图标记,其原来是100×200,即100个像素宽,200个像素高。这将大致适合许多捆绑标记的样子。现在,假设你想支持hdpi分辨率。那么,从上面的列表中,您将会期待480x800分辨率。我们还要说,您希望自定义地图标记占用屏幕宽度的10%,或者宽度为48像素。然后,您将缩小原始标记图像的副本,使宽度为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。在这种情况下,您可能需要从更高分辨率的图像开始。

+0

感谢您的支持。我真的很感激 –

+0

@AmirullahAchmadNassardhi我上面描述的我必须通过试验和错误来弄清楚......但它起作用,至少它在我自己的应用程序中运行良好。 –

+0

我困惑的东西兄弟。我一直在寻找如何创建drawabel-ldpi等,但我不知道如何创建drawabel-ldpi文件夹。你能告诉我如何? –