如何更改 layout:alignEnd,以编程方式对齐组件属性

How to change layout:alignEnd, alignComponent attributes programatically

我有2张图片,一张站在另一张后面,是黄色背景,突出20dp,它是一个框架。前图为主图

单击时,我希望主图像显示在 "yellow frame" 的中央。

<ImageView

    android:id="@+id/yellow_bkg"
    android:background="#ffe467"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
     />

<ImageView    
    android:id="@+id/card"
    android:background="@drawable/card"
    android:layout_alignRight="@+id/border"   //how to change this in code?
    android:layout_alignEnd="@+id/border"//how to change this in code?
    android:layout_margin="20dp" />

但效果应该在代码中发生,即当我单击或触摸卡片图像视图时动态发生。

您可以使用 LayoutParams 来做到这一点!

ImageView card = (ImageView) findViewById(R.id.card);

既然你有

android:layout_alignRight="@+id/border"
android:layout_alignEnd="@+id/border"

我假设您在 RelativeLayout 中

RelativeLayout.LayoutParams layoutParams;
layoutParams = new RelativeLayout.LayoutParams(width, height);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);

并在您的图像视图中 onClickListner

card.setLayoutParams(layoutParams);