0

我正在尝试如下所述进行布局。我不明白如何准确地实现布局。 在此处输入图像描述

布局和上面的六边形将有一些我需要从代码中动态更改的文本。

我尝试过这里提到的类似方法

但六边形仍在剪裁。我正在使用以下代码。

  <RelativeLayout
        android:id="@+id/Llfirstamount"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="@color/layoutcolor1"
        android:clickable="true"
        android:clipChildren="false" >

        <TextView
            android:id="@+id/my_first_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:android:layout_alignParentBottom="true"
            android:android:layout_alignParentLeft="true"
            android:padding="15dp"
            android:text="Amount"
            android:textColor="@android:color/white" />

        <TextView
            android:id="@+id/my_second_text"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginTop="-20dp"
            android:background="@drawable/hexagon"
            android:clipToPadding="false"
            android:contentDescription="@string/contentdesc_peso_logo"
            android:gravity="center"
            android:text="x5" />
    </RelativeLayout>

我不知道这是唯一的方法还是正确的方法,或者有更好的方法来实现这一点。我很困惑。请帮忙!!!谢谢你..

编辑:

好的,感谢您使用两个具有自定义背景的文本视图的回答是一个好主意。现在我正在使用编辑后的代码,但六边形正在裁剪,如下所示.. 在此处输入图像描述

我错过了什么我还添加了

android:clipToPadding="false"

android:clipChildren="false"  

在我的代码中。

4

3 回答 3

3

这会做到的。。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:background="#ccc"
        android:gravity="center_vertical"
        android:layout_centerInParent="true"
        android:padding="5dp"
        android:text="@string/hello_world" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView2"
        android:layout_marginLeft="-25dp"
        android:layout_marginBottom="-25dp"
        android:layout_toRightOf="@+id/textView2"
        android:background="@drawable/ic_launcher" />


</RelativeLayout>

输出: 在此处输入图像描述

祝你好运 :)

于 2013-08-30T14:42:22.533 回答
0

如果您必须更改代码中的文本,您可能不想使用 ImageView。

尝试使用两个 TextViews(绿色的一个和六边形的一个,它将把你的图像作为背景)

<RelativeLayout
        android:id="@+id/Llfirstamount"
        android:layout_width="wrap_content"
        android:layout_marginTop="40dp"
        android:layout_height="wrap_content"
        android:background="@drawable/layout"
        android:clickable="true"
        android:clipChildren="false"
        android:orientation="horizontal" >
        <TextView android:id="@+id/my_first_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:android:layout_alignParentLeft="true"
            android:android:layout_alignParentBottom="true"
        >
        </TextView>
        <TextView android:id="@+id/my_second_text"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:android:layout_alignParentTop="true"
            android:android:layout_alignParentRight="true"
            android:contentDescription="@string/contentdesc_peso_logo"
            android:background="@drawable/hexagon" />
    </RelativeLayout>

然后你可以使用Activity.findViewById() 来获取你的文本视图上的引用并更改它们的文本。

于 2013-08-30T14:24:44.697 回答
0

android:clipToPadding="false"如果您可以承受所有具有相同效果的子视图,则将和添加android:clipChildren="false"到最顶层的布局视图就可以了。

于 2019-06-01T10:40:44.687 回答