使用背景图像在relativelayout中对齐怪异

时间:2011-05-18 22:49:01

标签: android textview alignment patch relativelayout

我在RelativeLayout中有一个9补丁png,一切看起来都很棒!但是,当我在RL中创建一个textView时,textView不在父级的顶部...我也在手机上测试了这个,结果相同......为什么会这样做?

感谢您的协助!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/testLL"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/backrepeat"
    >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="15dp"
        android:layout_gravity="center_vertical|center_horizontal"
        android:background="@drawable/contentbox">

        <TextView
            android:text="Test"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"/>

    </RelativeLayout>
</LinearLayout>

RelativeView TextView

1 个答案:

答案 0 :(得分:2)

在查看如何渲染9个补丁时,它基本上将不可伸展区域转换为默认布局填充。这是为了便于将内容轻松输入目标(可伸展)区域,而无需进入并手动定义填充。通过分配9patch,您正在使用它的填充。它根据9patch到达可伸展中心的px数量,在左上角和右上角分配填充。

您可以尝试在textView中执行类似android:paddingTop =“ - 50px”的操作,看看会发生什么。我没有测试过这个,所以我很想知道结果如何。

使用pic编辑您的评论:由于您的9patch顶级弹性区域不会以约90像素开始,因此它会自动将第一个元素填充90 px,将其置于“弹性目标”区域内。试试我的上述建议,看看它是如何工作的,我很有兴趣看看结果如何。我没有从我的手机上访问我的IDE,否则我会为你测试它;)

编辑:我道歉,我一直在说“填充”而不是保证金。但理论是一样的。不修改上述内容以永久记录我的白痴。