我需要在imageview的中间放置一个文本视图,所以我有这个代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_background"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/menu_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1" />
<ImageView
android:id="@+id/menu_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_marginBottom="@dimen/menu_icon_margin_top_bottom"
android:layout_marginRight="@dimen/menu_icon_margin_right"
android:layout_marginTop="@dimen/menu_icon_margin_top_bottom" />
<TextView
android:id="@+id/notif_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/menu_icon"
android:layout_alignLeft="@id/menu_icon"
android:layout_alignRight="@id/menu_icon"
android:layout_alignTop="@id/menu_icon"
android:lines="1"
android:text="69"
android:textColor="@android:color/white" />
我需要最后一个textview始终位于menu_icon ImageView的中心,但我的methdot不能正常工作,只需将它放在左上角。
答案 0 :(得分:16)
由于你的ImageView没有填满所有RelativeLayout,你无法达到理想的效果。我建议你把ImageView和TextView放在FrameLayout中。
<FrameLayout
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true">
<TextView
android:id="@+id/menu_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:lines="1" />
<ImageView
android:id="@+id/menu_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/menu_icon_margin_top_bottom"
android:layout_marginRight="@dimen/menu_icon_margin_right"
android:layout_marginTop="@dimen/menu_icon_margin_top_bottom" />
</FrameLayout>
答案 1 :(得分:3)
你只需要添加:
android:layout_centerInParent="true"
到上一个TextView
答案 2 :(得分:1)
FrameLayout
是最好的方式。您也可以使用RelativeLayout
,顺便说一句。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="40dp"
android:layout_height="40dp">
<ImageView
android:id="@+id/marker_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:src="@drawable/ic_marker_selected" />
<TextView
android:id="@+id/marker_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:textColor="#fff"
android:textSize="14sp"
tools:text="A" />
</FrameLayout>