0

我正在尝试使用代码动态调整相对布局中的图像大小

int height = v.getHeight();
   int width = v.getWidth();
height += 50;
width += 50; 
RelativeLayout.LayoutParams layout = new RelativeLayout.LayoutParams(height, width);
layout.setMargins(200, 200, 200, 200);
layout.addRule(RelativeLayout.CENTER_IN_PARENT);
    v.setLayoutParams(layout);

这里的 v 是一个视图(在这种情况下是一个 imageView)规则完美地工作。图像被放置在中心,但我想要得到的是图像应该放在它所在的位置。也就是说,如果图像位于 (100,100) 位置,则应增加其大小,并且应将图像放置在同一位置或我需要放置它的位置。任何人都可以建议我。

4

1 回答 1

0

你所问的,不能简单地通过创建规则来完成。您需要为这种对齐做额外的工作。

1)使用 addRule 对齐父级左对齐父级顶部,然后设置左侧和顶部边距以将图像对齐到您想要的任何位置 100,100 或 200、50 等,之后您可以在不更改位置的情况下调整图像大小。

2)如果你保持图像对齐 CENTER_IN_PARENT 那么图像调整大小有点典型。您需要根据增加的尺寸增加左侧和顶部填充以使图像居中对齐。

假设图像尺寸为 100x100,新尺寸为 150x150,
现在您需要将布局参数设置为宽度 x 高度为 200x200,并将图像的左侧和顶部填充设置为 50。

我希望它清楚

于 2013-07-22T08:50:37.073 回答