Android 使瓷砖覆盖层透明

Android 使瓷砖覆盖层透明,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我目前正在开发一个应用程序,它使用自定义的TileSource在Google地图上显示数据。我以*.png图像的形式获取这些数据,并使用URLTileProvider 一切都很好,但我现在正在尝试使TileLayer透明,或者至少部分透明。目标是,该层是可见的,但底层的谷歌地图仍然闪耀着光芒。不知怎的,我被卡住了,因为我不知道如何做到这一点 我没有找到完全实现自定义TileProvider的方法,似乎只能扩展URLTileProvider 服务器端图像操作是不可能的,因为数据是给定的 没有使平

我目前正在开发一个应用程序,它使用自定义的TileSource在Google地图上显示数据。我以*.png图像的形式获取这些数据,并使用URLTileProvider

一切都很好,但我现在正在尝试使TileLayer透明,或者至少部分透明。目标是,该层是可见的,但底层的谷歌地图仍然闪耀着光芒。不知怎的,我被卡住了,因为我不知道如何做到这一点

  • 我没有找到完全实现自定义TileProvider的方法,似乎只能扩展URLTileProvider
  • 服务器端图像操作是不可能的,因为数据是给定的
  • 没有使平铺透明的选项?(alpha、不透明度、透明度)

如果有人能告诉我正确的方向,或者告诉我Google Maps API V2 for Android是否真的不支持此功能,我会非常有帮助。

你能让平铺图像本身透明吗?URLTileProvider可以指向任何图像,因此如果图像具有alpha,它应该可以工作


您可以直接实现TileProvider,但在这种情况下,您必须注意加载自己的图像数据。如果您希望在客户端上动态生成tile,那么这似乎更为理想。

目前无法在android maps sdk v2中为TileOverlay指定透明度。
不幸的是,
setTransparency(float)
方法仅适用于
GroundOverlay
。。唯一的方法是实现您自己的TileProvider,并“动态”更改png以更改alpha频道。

这是我最后的做法:我创建了自己的自定义TileProvider,通过URL的Inputstream获取Tile,然后通过BitmapFactory.decodeByteArray生成位图,以便使用此函数进行修改:
私有位图调整不透明度(位图位图位图)
bitmap.Config conf=bitmap.Config.ARGB_8888;位图bmp=Bitmap.createBitmap(256,256,conf);画布=新画布(bmp);油漆=新油漆();油漆。setAlpha(TilePocity);drawBitmap(位图,0,0,绘制);返回bmp;}我有一个类似的问题极乐世界,我也有我自己的TileProvider。但我发现在绘制瓷砖后,我无法更改瓷砖的透明度。您是否在绘制“adjustOpacity”后的任何时间使用它?您是否在调整不透明度后将位图转换回字节[]?否则,您是如何从要由getTile()返回的位图创建平铺的?谢谢。@paul,是的,你需要在完成后将位图转换回字节数组。我编写了一个自定义的TileProvider,它使用@Elysium的adjustOpacity()方法,为我们完成了所有这些。只需打开自定义TileProvider而不是URLTileProvider,设置您的不透明度(如果需要,不超过75%),就可以了。在这里查看: