gpt4 book ai didi

java - 自定义标记图标谷歌地图android

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:11 24 4
gpt4 key购买 nike

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

最佳答案

您可以创建您的布局并将该布局转换为Drawable,然后您可以将该drawable添加到标记的图标中。

您可以像这样创建布局,

<?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;
}

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

mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(getBitMapFromLayout([your layout id]))));

关于java - 自定义标记图标谷歌地图android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com