我正在尝试将自定义视图添加到Google地图Marker:
home_marker_container.xml
:<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/home_map_marker_size"
android:layout_height="@dimen/home_map_marker_size"
android:background="@color/black"
android:id="@+id/frame">
<TextView
android:layout_width="12dp"
android:layout_height="12dp"
android:text="5"
android:textSize="10dp"
android:background="@color/white"
android:layout_centerInParent="true"
android:gravity="center" />
</RelativeLayout>
我用
夸大它ViewGroup home_marker_container = (ViewGroup) layoutInflater.inflate(R.layout.home_marker_container, null, false);
所以我通过Google Maps Android API Utility Library通过IconGenerator将其添加到标记中,基本上将View转换为Bitmap:
iconGenerator.setContentView(home_marker_container);
iconGenerator.setContentPadding(horizontal_padding, vertical_padding, horizontal_padding, vertical_padding);
Bitmap iconBitmap = iconGenerator.makeIcon();
之后我意识到膨胀不能像我预期的那样有效,因为我在null
中将ViewGroup root
提供给inflate(int resource, ViewGroup root, boolean attachToRoot)
参数,因此
android:layout_width="@dimen/home_map_marker_size"
android:layout_height="@dimen/home_map_marker_size"
不是从xml中获取的。 为什么以及如何解决?
答案 0 :(得分:-1)
由于没有根according to docs,因此我从inflate
返回root,因此我手动将大小设置为root:
View markerView;
markerView = layoutInflater.inflate(R.layout.marker1, null);
markerView.setLayoutParams(new ViewGroup.LayoutParams(80, 80));;