android:paddingLeft设置为屏幕的百分比

时间:2015-01-14 06:27:07

标签: android layout android-linearlayout

我有一个textview组件,我通过layout_weight将其宽度设置为其父级的50%。我还需要为它设置填充值。我似乎可以将其设置为xdp,但我怎样才能使用权重配置?比方说,左边填充是屏幕的2%?

<TextView
        android:id="@+id/buttonCollect"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:text="@string/hello"
        android:paddingLeft="8dp"   //<---- how to se this.
        android:layout_weight="0.5" /> 

3 个答案:

答案 0 :(得分:1)

您无法在XML布局文件中将百分比设置为填充值。

但是,您可以通过在px中计算正确的长度来在Java代码中设置它。

答案 1 :(得分:0)

您可以使用dimens.xml并将它们放在不同的values-xxx文件夹中。如果您想要8dp设备中的hdpi10dp中的hdpi-1024x600,您可以按照以下步骤操作:

  1. dimens.xml文件夹中创建values-hdpi

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="paddingLeft">8dp</dimen>
    </resources
    
  2. dimens.xml文件夹中创建values-hdpi-1024x600

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="paddingLeft">10dp</dimen>
    </resources
    
  3. android:paddingLeft="8dp"替换为 android:paddingLeft="@dimen/paddingLeft"

  4. 希望它有所帮助。

答案 2 :(得分:0)

您可以使用水平 LinearLayout ,其中视图 TextView 作为其子项,并相应地指定权重。然后,无需将填充设置为 TextView

此处, TextView 占据屏幕的2/3。

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Lagre text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

    </LinearLayout>