如何以编程方式添加边距布局规则?

时间:2015-07-27 20:15:19

标签: android android-layout

我有一个imageView作为布局xml中RelativeLayout的子项,我正在尝试以编程方式添加等效项。

我可以将layout_below映射到LayoutParams.addRule(BELOW, textView2),将layout_centerHorizontal映射到LayoutParams.addRule(CENTER_HORIZONTAL, TRUE)

但是如何以编程方式添加layout_marginTop="30p"作为规则?

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#2d62ff"
    android:id="@+id/rippleLayout2"
    android:layout_weight="0.91">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="top text"
        android:id="@+id/textView2"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/pizzahut"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp" />

2 个答案:

答案 0 :(得分:0)

RelativeLayout.LayoutParams是一个MarginLayout.LayoutParams,它有多个setMargins()重载和公共{top,left,right,bottom}Margin字段。

答案 1 :(得分:0)

设置顶部的边距,如下所示:

RelativeLayout.LayoutParams relativeParams =  RelativeLayout.LayoutParams)relativeLayout.getLayoutParams();
layoutParams.setMargins(0, 80, 0, 0);