将LinearLayout设置为具有图像背景的其他LinearLayout

时间:2012-07-20 15:47:44

标签: android xml background android-linearlayout

我想设置主要布局的背景并将内容放入其中。 问题:内容设置为填充整个背景,但它完全压缩为几个像素。

更新:我使用9补丁图片作为背景。

这是我的代码:

    <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"  
    android:gravity="center"
    android:background="@drawable/badgeandroid"
    android:layout_marginLeft="20sp"
    android:layout_marginRight="20sp"
    android:layout_marginBottom="20sp"
    >


    <LinearLayout 
    android:id="@+id/contentbadge"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"  
    android:gravity="center"
    android:layout_margin="10sp"
    >

   <TextView 
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"   
    android:text="Your badge pocket is empty"
    android:textColor="#FFFFFF"
    android:textSize="25sp"
    android:textStyle="bold" 
    android:gravity="center"
   ></TextView>

    </LinearLayout >

    </LinearLayout >

3 个答案:

答案 0 :(得分:0)

您的版面边距不正确。您正在使用“sp” - &gt;缩放像素。这是文本的维度。您应该使用的是“dp”或“dip”(两者都相同) - &gt;密度无关的像素。

答案 1 :(得分:0)

好的,我终于找到了解决方案。 9补丁搞砸了一切。 回答here

我只是添加删除了我的填充并将它们包含在9patch中:

      <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"  
    android:gravity="center"
    android:background="@drawable/badgeandroid"
    android:layout_margin="0dp"
    >


    <LinearLayout 
    android:id="@+id/contentbadge"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"  
    android:gravity="center"
    android:layout_margin="10sp"
    >

   <TextView 
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"   
    android:text="Your badge pocket is empty"
    android:textColor="#FFFFFF"
    android:textSize="25sp"
    android:textStyle="bold" 
    android:gravity="center"
   ></TextView>

    </LinearLayout >

    </LinearLayout >

Romain Guy解释了为什么here

答案 2 :(得分:0)

尝试使用此代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginBottom="20dip"
    android:layout_marginLeft="20dip"
    android:layout_marginRight="20dip"
    android:gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/contentbadge"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dip"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Your badge pocket is empty"
            android:textColor="#FFFFFF"
            android:textSize="25dip"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

</LinearLayout>