Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义布局作为地图标记_Android - Fatal编程技术网

Android 自定义布局作为地图标记

Android 自定义布局作为地图标记,android,Android,我正在尝试添加自定义布局作为标记,我正在跟踪,但我得到的输出是红色补丁,这是父布局的背景 如果我不放背景,标记甚至不会出现。 这是我到目前为止试过的,请帮忙 location\u marker.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/locationMarker" android:layout_width="wrap_content" andr

我正在尝试添加自定义布局作为标记,我正在跟踪,但我得到的输出是红色补丁,这是父布局的背景

如果我不放背景,标记甚至不会出现。 这是我到目前为止试过的,请帮忙

location\u marker.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/locationMarker"
android:layout_width="wrap_content"
android:background="@color/red"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:gravity="center"
android:orientation="vertical">

<pgapp.com.rodionsolutions.pg.pgadmin.widgets.RegularTextView
    android:id="@+id/locationMarkertext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/round_edittext"
    android:gravity="center"
    android:minWidth="100dp"
    android:paddingLeft="2dp"
    android:paddingRight="2dp"
    android:textColor="@color/text_color"
    android:text="Area Name" />

<ImageView
    android:id="@+id/imageMarker"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:src="@drawable/arrow_point_to_down"/>
这是将布局创建为位图的方法

public static Bitmap createDrawableFromView(Context context, View view) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
    view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
    view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
    view.buildDrawingCache();
    Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
}
但结果是

像这样添加谷歌地图

marker.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(getActivity(), markerView)));
标记mar=mMap.addMarker(标记)

public static Bitmap createDrawableFromView(Context context, View view) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
    view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
    view.buildDrawingCache();
    Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);

    return bitmap;
}
marker.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(getActivity(), markerView)));