Android谷歌地图透明度

我正在制作一个地图应用程序。 我想在MapView下显示一些视图。 我使用的方法是:

mapView.setAlpha(0.5f); 

mapView没有任何反应。 当我尝试将这个方法应用到我的button时,它可以很好地工作,甚至将它应用到mapView的父视图中,除了mapView之外,每个子视图都是透明的。

我们如何使mapView透明? 我在这里看到了其他问题,我似乎找不到解决scheme。

在mapView.getMap()中是否有一些特殊的方法可以使它透明?

Solutions Collecting From Web of "Android谷歌地图透明度"

您可以使用View.setAlpha() ( 文档 )设置地图的透明度。 这是一个工作的例子:

activity_maps.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="THIS TEXT IS VISIBLE" android:textSize="24sp" android:gravity="center"/> <fragment android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/map" tools:context=".MapsActivity" android:name="com.google.android.gms.maps.SupportMapFragment" /> </RelativeLayout> 

MapsActivity.java

 public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMapAsync(this); } @Override public void onMapReady(GoogleMap googleMap) { Marker m = googleMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker")); m.showInfoWindow(); View v = getSupportFragmentManager().findFragmentById(R.id.map).getView(); v.setAlpha(0.5f); // Change this value to set the desired alpha } } 

结果看起来像这样(因为你看到文本是可见的,因为地图的透明度):

在这里输入图像说明

你可以通过你的MapView引用的setAlpha(float)方法来做到这一点,就像这样:

 mMapView = (MapView) findViewById(R.id.map); mMapView.onCreate(savedInstanceState); mMapView.getMapAsync(this); mMapView.setAlpha(0.5f); 

如果您正在使用MapFragment,那么只需使用setAlpha(float)作为您的MapFragment。

在您将2个视图(CameraView和MapView)放在自己身上的地方使用Framelayout。 并使用xml属性alpha来使MapView透明。