【问题标题】:Custom Info Window for Google Maps v2Google Maps v2 的自定义信息窗口
【发布时间】:2014-11-13 13:27:18
【问题描述】:

我正在尝试自定义信息窗口并在加载地图时显示它。自定义信息窗口出现了,但与默认信息窗口背景(白色)一起,我还没有为它出现的标记设置图标?为什么我会觉得这是默认设置?

这是我尝试的屏幕截图:

我不想要白色窗口和标记图标?我正在尝试实现类似下面给出的截图:How to create a custom-shaped bitmap marker with Android map API v2

这是我正在尝试的:

public class Mapstwo extends Fragment implements GoogleMap.OnMyLocationChangeListener
{
private GoogleMap googleMap;
private GPSTracker gps;
private double curlat;
private double curlong;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) 
{
    if (rootView != null) 
    {
        ViewGroup parent = (ViewGroup) rootView.getParent();
        if (parent != null)
            parent.removeView(rootView);
    }
    try 
    {
        rootView = inflater.inflate(R.layout.activity_locate_me_maps, container, false);
    } 
    catch (InflateException e) 
    {

    }

            if (initMap())
    {
        gps = new GPSTracker(fa);
        curlat = gps.getLatitude();
        curlong = gps.getLongitude();
        gps.stopUsingGPS();

        myLocation(curlat, curlong, username, imageURL, ZOOMVALUE);
    }
    else
    {
        Toast.makeText(getActivity().getApplicationContext(),"Sorry! Map not available!", Toast.LENGTH_SHORT).show();
    }


    return rootView;
}


    private boolean initMap() 
{
    if (googleMap == null)
    {
        SupportMapFragment mapFrag = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map));
        googleMap = mapFrag.getMap();
        googleMap.setTrafficEnabled(true);
        //googleMap.setMyLocationEnabled(true);
        googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        googleMap.setOnMyLocationChangeListener(this);
    }

    return (googleMap != null);
}


    //MY LOCATION
private void myLocation(double lat, double lng, String name, String url, float zoom)
{

    final String uname = name; 
    curlat = getLat; 
    curlong = getLong;
    LatLng position = new LatLng(curlat, curlong);

    markermylocation = googleMap.addMarker(new MarkerOptions().position(position).title(uname).snippet("Testing is everthing OK?")); 
    markers.put(markermylocation.getId(), imageURL);
    googleMap.setInfoWindowAdapter(new CustomInfoWindowAdapter()); 
    markermylocation.showInfoWindow();

}


    @SuppressLint("InflateParams") 
private class CustomInfoWindowAdapter implements InfoWindowAdapter 
{
    @Override
    public View getInfoWindow(Marker arg0) 
    {
        return null;
    }

    @Override
    public View getInfoContents(Marker marker) 
    {
        View v = getActivity().getLayoutInflater().inflate(R.layout.activity_map, null);  

        Log.e("View","Sucessful");

        return v;
    }
}

}

【问题讨论】:

    标签: android google-maps google-maps-markers google-maps-android-api-2


    【解决方案1】:

    试试这个代码,你需要改变默认布局框架,你需要在getInfoWindow()中设置你的inflate视图

    // Use default InfoWindow frame
        @Override
        public View getInfoWindow(Marker arg0) {
            View v = getActivity().getLayoutInflater().inflate(R.layout.activity_map, null);                                                                              
            Log.e("View","Sucessful");
            return v;
        }
    
       // Defines the contents of the InfoWindow
        @Override
        public View getInfoContents(Marker arg0) {
           return null;
         }
    

    您在默认内容布局中为视图膨胀,因此更改为膨胀视图。

    【讨论】:

    • 这解决了问题,但为什么我得到标记图标?我根本没有声明?
    • 你得到了什么图标?
    • 我在屏幕截图中添加的标记图标?泡沫?
    • 好的。你想使用自定义标记图标吗?bcs,这是地图中的默认标记。markermylocation = googleMap.addMarker(new MarkerOptions().position(position).title(uname).snippet("Testing is everthing OK?"));//default custom marker icons
    • 最后一个问题:没有记号笔是怎么做到的? stackoverflow.com/questions/14811579/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2015-07-10
    • 2013-09-09
    相关资源
    最近更新 更多