当前位置: 首页 > 知识库问答 >
问题:

自定义标记图标google map android

濮阳宏硕
2023-03-14

我们可以自定义标记图标谷歌地图吗?我不想只是简单地更改图标位图(我知道怎么做),我想更改图标的方式就像我有一个xml布局(有一个imageview和一个textview),我想膨胀这个xml(像自定义信息窗口)。但我想让它成为一个标记图标,这样我就可以通过编码来设置图像和文本。注意,我不想要一个信息窗口,我希望它是一个标记

共有1个答案

宋育
2023-03-14

您可以创建您的布局,并将该布局转换为可绘制布局,还可以将该可绘制布局添加到标记的图标中。

你可以像这样创建你的布局,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_action_name"
    "/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="2dp"
        android:text="Name"
        android:textSize="16sp"/>

</LinearLayout>

下面的方法将为您提供布局中的位图,

private Bitmap getBitmapFromLayout(int layout) {

    LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(layout, null);

    view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    view.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());

    view.buildDrawingCache();

    Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
            Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(bitmap);
    canvas.drawColor(Color.WHITE, PorterDuff.Mode.SRC_IN);

    Drawable drawable = view.getBackground();
    if (drawable != null)
        drawable.draw(canvas);

    view.draw(canvas);

    return bitmap;
}

您可以像这样在地图标记图标中添加位图,

mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(getBitMapFromLayout([your layout id]))));
 类似资料:
  • 我正在为Android制作基于谷歌地图服务的公共交通地图。地图应该包含很多标记(超过300个),它们应该在地图放大和缩小(缩放)时调整大小。现在标记只是互相重叠,有没有办法创建像这样的自定义标记? 我自己也试过,但没有成功。使用android-map-utils库(https://github.com/googlemaps/android-maps-utils)标记现在看起来更好了,但它们不能调整

  • 我正在使用React视图上的Highcharts。出于可访问性和搜索引擎优化的原因,我想定制标记,但我在文档中找不出如何实现。Highcharts会自动插入一个标记,如下所示: <代码> 有没有办法改变这一点,或者这是硬编码的?

  • 我在我的flutter应用程序中使用google_maps_flutter来使用谷歌地图我有自定义标记图标,我用BitmapDescriptor.from字节(mark erIcon)加载它,但我想用一些文本显示Url的图标。 这就是我们要达到的目的 是否可以通过flutter或任何可以动态创建图像的外部图像依赖来实现相同的效果。

  • 问题内容: 我正在尝试创建一种类似于英语的小型语言来指定任务。基本思想是将陈述分为动词和名词短语,这些动词应适用于它们。我正在使用nltk,但未获得我希望的结果,例如: 在每种情况下,它都未能意识到第一个单词(选择,移动和复制)被用作动词。我知道我可以创建自定义标签和语法来解决此问题,但是与此同时,当很多此类东西不在我的支持范围内时,我犹豫要重新发明轮子。我特别希望可以同时处理非英语语言的解决方案

  • 这节将介绍如何为不同的平台配置一个app的图标。对启动画面(splash screen)的支持已经被移动到Cordova自己的插件中了。配置选项可以在Splashscreen插件文档中找到. 在CLI工作流中配置图标 当工作在CLI工作流中,你可以通过<icon>元素(config.xml)定义你的app图标。如果没用指定图标将使用ApacheCordova的logo. <icon src