Android - 以编程方式将RelativeView添加到RelativeLayout始终设置ImageView中心

时间:2017-08-17 10:42:02

标签: android android-layout imageview android-relativelayout

我想动态地将一些ImageView添加到RelativeLayout。 这是XML:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"      android:layout_height="wrap_content">

<View
    android:id="@+id/termin_viewStatus"
    android:layout_width="5dp"
    android:layout_height="70dp"
    android:layout_marginTop="1dp"
    android:layout_alignParentTop="true"
    android:layout_alignBottom="@+id/termin_viewIcons"
    android:layout_marginLeft="0dp" />

<TextView
    android:id="@+id/termin_lblUhrzeit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_toRightOf="@id/termin_viewStatus"
    android:layout_marginLeft="16dp"
    android:textAppearance="?attr/textAppearanceListItem"
    android:textSize="14dp"
    android:textStyle="bold"/>

<ImageView
    android:id="@+id/termin_imageViewAchtung"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignTop="@id/termin_lblUhrzeit"
    android:layout_alignBottom="@id/termin_lblUhrzeit"
    app:srcCompat="@drawable/icon_achtung"
    android:layout_marginLeft="10dp"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@id/termin_lblUhrzeit" />

<TextView
    android:id="@+id/termin_lblGegner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/termin_lblUhrzeit"
    android:layout_toRightOf="@id/termin_viewStatus"
    android:layout_marginLeft="16dp"
    android:textAppearance="?attr/textAppearanceListItem"
    android:textSize="16dp" />

<TextView
    android:id="@+id/termin_lblOrt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/termin_lblGegner"
    android:layout_toRightOf="@id/termin_viewStatus"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="5dp"
    android:textAppearance="?attr/textAppearanceListItem"
    android:textSize="13dp"/>

<ImageView
    android:id="@+id/termin_imageView"
    android:layout_width="40dp"
    android:layout_height="40dp"
    app:srcCompat="@drawable/icon_game"
    android:layout_marginRight="30dp"
    android:layout_marginEnd="30dp"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<RelativeLayout
    android:id="@+id/termin_viewIcons"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_below="@id/termin_lblOrt"
    android:layout_marginLeft="0dp"
    android:gravity="left">
</RelativeLayout>

这是添加ImageView的代码

ImageView img = new ImageView(context);
        img.setImageResource(R.drawable.icon_car);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 1);
        params.leftMargin = 20;
        img.setLayoutParams(params);
        rl.addView(img);

但是现在ImageView没有出现在左侧。它出现在RelativeLayout的中心。

修改 父母布局是什么意思?

当我将.leftMargin设置为例如300,图标从中心向右移动300.

有人可以帮忙吗?

0 个答案:

没有答案