【问题标题】:Android layout clippingAndroid 布局裁剪
【发布时间】:2013-09-03 06:55:57
【问题描述】:

我正在尝试按如下所述进行布局。我不明白如何准确地实现布局。

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

我尝试过here提到的类似方法

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

  <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"  

在我的代码中。

【问题讨论】:

    标签: android xml android-layout image-clipping


    【解决方案1】:

    这样就可以了..

    <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>
    

    输出:

    祝你好运:)

    【讨论】:

    • 您可以随时将您的代码与我的代码进行比较;)。我用android:layout_centerInParent="true"作为我的灰色TextView
    • Hmmm .. 但这不是我猜的问题...如果您将文本视图放在另一个相对布局中,那么它不起作用...而且我需要有一个父元素两个文本视图..因为所需的布局实际上是一个按钮...我的父布局中有 6 个类似的按钮
    【解决方案2】:

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

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

    <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() 获取您的文本视图上的引用并更改它们的文本。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-06
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多