标记布局未在地图中正确显示
Marker layout not showing properly in map
我正在为 driver 开发交通应用。我想像这个设计一样用名称显示停靠点。
我正在为此使用 RelativeLayout
,但在启动应用程序后,站点名称也会出现在中心。
实际的实现是这样的。
这是我的标记布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:layout_gravity="center_horizontal"
>
<TextView
android:id="@+id/txtStop"
android:text="test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/patch"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:textStyle="bold"
android:textSize="18sp"
android:layout_centerHorizontal="true"
android:layout_toRightOf="@+id/imgMarker" />
<ImageView
android:id="@+id/imgMarker"
android:src="@drawable/icon_marker_stops"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_below="@+id/txtStop"
android:layout_centerHorizontal="true" />
</RelativeLayout>
试试这个代码:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="#00000000">
<TextView
android:id="@+id/txtStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/patch"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:text="test"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toEndOf="@+id/imgMarker"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/imgMarker"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_below="@+id/txtStop"
android:layout_marginTop="25dp"
android:src="@drawable/icon_marker_stops"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
您可以将视图作为标记添加到地图中。
首先,您可以根据以下代码将所需视图转换为位图:
然后将您的输出位图作为标记添加到您想要的任何位置的位图中。
你可以像这样放置你的标记视图:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraint"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="#00000000">
<TextView
android:id="@+id/txtStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@color/txtColor"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:text="test"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.v4.widget.Space
android:id="@+id/marginSpacer"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="@+id/txtStop" />
<ImageView
android:id="@+id/imgMarker"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_below="@+id/txtStop"
android:src="@drawable/marker"
app:layout_constraintStart_toEndOf="@id/txtStop"
app:layout_constraintTop_toBottomOf="@id/marginSpacer"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
我正在为 driver 开发交通应用。我想像这个设计一样用名称显示停靠点。
我正在为此使用 RelativeLayout
,但在启动应用程序后,站点名称也会出现在中心。
实际的实现是这样的。
这是我的标记布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:layout_gravity="center_horizontal"
>
<TextView
android:id="@+id/txtStop"
android:text="test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/patch"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:textStyle="bold"
android:textSize="18sp"
android:layout_centerHorizontal="true"
android:layout_toRightOf="@+id/imgMarker" />
<ImageView
android:id="@+id/imgMarker"
android:src="@drawable/icon_marker_stops"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_below="@+id/txtStop"
android:layout_centerHorizontal="true" />
</RelativeLayout>
试试这个代码:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="#00000000">
<TextView
android:id="@+id/txtStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/patch"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:text="test"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toEndOf="@+id/imgMarker"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/imgMarker"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_below="@+id/txtStop"
android:layout_marginTop="25dp"
android:src="@drawable/icon_marker_stops"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
您可以将视图作为标记添加到地图中。 首先,您可以根据以下代码将所需视图转换为位图: 然后将您的输出位图作为标记添加到您想要的任何位置的位图中。
你可以像这样放置你的标记视图:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraint"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="#00000000">
<TextView
android:id="@+id/txtStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@color/txtColor"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:text="test"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.v4.widget.Space
android:id="@+id/marginSpacer"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="@+id/txtStop" />
<ImageView
android:id="@+id/imgMarker"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_below="@+id/txtStop"
android:src="@drawable/marker"
app:layout_constraintStart_toEndOf="@id/txtStop"
app:layout_constraintTop_toBottomOf="@id/marginSpacer"
/>
</androidx.constraintlayout.widget.ConstraintLayout>