【问题标题】:Google android maps api v2 Show Marker Title AlwaysGoogle android maps api v2 始终显示标记标题
【发布时间】:2013-01-12 19:38:00
【问题描述】:

我的 android 应用程序中有一个 google maps v2,上面有一些标记。当用户单击这些标记之一时,会出现一个标题弹出窗口。如何在没有用户点击的情况下始终显示这些标题?

【问题讨论】:

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


    【解决方案1】:

    【讨论】:

    • 谢谢它帮助了我一点。但我想同时显示所有标题。有可能吗?
    【解决方案2】:

    类似的东西:

    googleMap.addMarker(new MarkerOptions()
        .position(new LatLng(latitude, longitude))
        .title("Your position")).showInfoWindow();
    

    【讨论】:

    • 它在使用默认信息窗口时完全工作,但是当我使用信息窗口适配器作为自定义信息窗口而不是信息窗口默认打开时??
    【解决方案3】:

    你可以这样做:

    Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text"));
    marker.showInfoWindow();
    

    【讨论】:

      【解决方案4】:

      为了在标记周围的地图上显示标记标题,我在互联网上找到的解决方案都不适合我,所以我卷起袖子制作了这个库来为我解决这个问题,希望它也能帮助其他人:

      https://github.com/androidseb/android-google-maps-floating-marker-titles

      这里是它如何工作的预览:

      【讨论】:

      • 我不知道为什么它被否决了。这是一个非常有用的答案。也谢谢你的 gif。
      【解决方案5】:

      我在某些实现方面不太好,但这是我的代码:

      public BitmapDescriptor getBitmapFromView(String title) {
              View view = LayoutInflater.from(activity.getApplicationContext()).inflate(R.layout.marker_tooltip, null);
              ((TextView) view.findViewById(R.id.tooltips_title)).setText(title);
      
              //Get the dimensions of the view. In my case they are in a dimen file
              int width = activity.getResources().getDimensionPixelSize(R.dimen.tooltips_width);
              int height = activity.getResources().getDimensionPixelSize(R.dimen.tooltips_height);
      
              int measuredWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
              int measuredHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY);
      
              view.measure(measuredWidth, measuredHeight);
              view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
      
              Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
              Canvas canvas = new Canvas(bitmap);
      
              view.draw(canvas);
      
              return BitmapDescriptorFactory.fromBitmap(bitmap);
          }
      
      ...
      marker.setIcon(getBitmapFromView(marker.getTitle()));
      ...
      

      我在地图应用程序的一个片段中实现了这一点,并有一些变化。例如,使用自定义信息窗口和地图上的一些事件,但它的实现需要同时显示所有标记标题。 如果对你也有帮助,请告诉我

      “activity.getResources().getDimensionPixelSize(R.dimen.tooltips_width)”变量的 ACTIVITY 是片段中的一个属性

      【讨论】:

      • 谢谢你!此外,要测量文本的宽度,您可以使用 textView.paint.measureText(title) 使位图宽度取决于内容
      【解决方案6】:

      也许我回答这个问题有点晚了,但下面的代码对我有用:

      //添加这个库

      implementation 'com.google.maps.android:android-maps-utils:0.5'
      

      //然后使用下面的方法

      public void makersMaker(GoogleMap googleMap){
          IconGenerator iconFactory = new IconGenerator(this);                            
          Marker marker1 = googleMap.addMarker(new MarkerOptions().position(newLatLng(-1.3177336,36.8251902));                  
          marker1.setIcon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon("Marker 1")));
          Marker marker2 = googleMap.addMarker(new MarkerOptions().position(new LatLng(-1.2857399,36.8214088)));                
          marker2.setIcon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon("Marker 2")));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-16
        • 1970-01-01
        • 2014-01-15
        • 1970-01-01
        • 2013-08-31
        • 2013-03-22
        相关资源
        最近更新 更多