0

我想让我的文字中风。我使用自定义罢工线图像。到目前为止,我这样做了:

<RelativeLayout
    android:id="@+id/title_container"
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FFFF0000">

    <TextView
        android:id="@+id/title"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:duplicateParentState="true"
        android:singleLine="true"
        android:ellipsize="end"
        android:textColor="@color/title_text"
        android:textSize="18dp"
        android:background="#FF00FF00"
         />

    <ImageView
        android:id="@+id/title_strike_through"
        android:contentDescription="@null"
        android:layout_centerVertical="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:duplicateParentState="true"
        android:src="@drawable/title_strike"/>

</RelativeLayout>

现在的问题是 title_container 布局跨越了窗口的整个宽度,因此 title_strike_through 也延伸了。它不应该!我只需要 title_strike_through 覆盖文本。我应该怎么办?

4

5 回答 5

2

在 imageview 中添加以下属性,使其等于 textview 的宽度:

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/title"
android:layout_alignRight="@id/title"
于 2012-12-13T07:05:56.630 回答
1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/title_container"
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FFFF0000">

    <TextView
        android:id="@+id/title"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:duplicateParentState="true"
        android:singleLine="true"
        android:ellipsize="end"
        android:textColor="@color/titleText"
        android:textSize="18dp"
        android:background="#FF00FF00"
         />

    <ImageView
        android:id="@+id/title_strike_through"
        android:contentDescription="@null"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:duplicateParentState="true"
        android:src="@drawable/ic_launcher"/>

</RelativeLayout>

这是你想要的吗请告诉我..

于 2012-12-13T05:05:06.617 回答
1

以编程方式将 的宽度设置为ImageView的宽度TextView。虽然我不明白为什么布局设置为包装内容时会跨越整个宽度......

于 2012-12-13T04:29:45.060 回答
1

如果您希望它占用特定数量的空间,那么您应该设置该layout_width属性。如果你想让它占据屏幕的百分比,那么你应该设置layout_weight属性。

于 2012-12-13T04:41:12.260 回答
0

尝试这个..

<RelativeLayout
    android:id="@+id/title_container"
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FFFF0000">
<LinearLayout
 android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
android:duplicateParentState="true">

<TextView
        android:id="@+id/title"

        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:singleLine="true"
        android:ellipsize="end"
        android:textColor="@color/title_text"
        android:textSize="18dp"
        android:background="#FF00FF00"
         />

    <ImageView
        android:id="@+id/title_strike_through"
        android:contentDescription="@null"

        android:layout_width="match_parent"
        android:layout_height="match_parent"

        android:src="@drawable/title_strike"/>
</LinearLayout>

</RelativeLayout>
于 2012-12-13T04:48:34.367 回答