簡體   English   中英

自定義標記圖標Google Map Android

[英]Custom marker icon google map android

我們可以自定義標記圖標的谷歌地圖嗎? 我不想只是簡單地更改圖標位圖(我知道該怎么做)我想以一種方式來更改圖標,例如我有一個xml布局(具有一個imageview和一個textview),並且想對該xml進行充氣(例如自定義信息窗口)。 但是我想使其成為標記圖標,所以我可以通過編碼來設置圖像和文本。請注意,我不需要信息窗口,我希望它成為標記

您可以創建layour和布局轉化為可繪制,你可以添加繪制到您的標記的圖標。

您可以這樣創建布局,

<?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]))));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM