【发布时间】:2017-08-03 22:12:29
【问题描述】:
我过去曾这样做过,但我很沮丧,因为这种方法没有像我预期的那样工作。我有一张想要调整为特定尺寸的图片,我正在使用以下代码:
snellen.post(new Runnable() {
@Override
public void run() {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) snellen.getLayoutParams();
params.width = (int)(converted*WIDTH_RATIO);
params.height = (int)(converted*HEIGHT_RATIO);
snellen.setLayoutParams(params);
System.out.println("########################################################################### SNELLEN CHART WIDTH: : " + snellen.getWidth());
System.out.println("########################################################################### SNELLEN CHART HEIGHT: : " + snellen.getHeight());
}
});
我检查了(converted*WIDTH_RATIO) 和(converted*HEIGHT_RATIO) 是什么,它们在100 的某个地方。我已经把它放在一个处理程序中,所以我可以得到正确的getLayoutParams(),因为我过去遇到过这个问题。
问题是当我打印出宽度和高度时,它们不是我在params.width 和params.height 中设置的值。我在这里做错了什么?
【问题讨论】:
-
看起来应该可以了,不是吗?查看this answer 了解另一种解决方法。
-
由于
snellen的父级似乎是ConstraintLayout,是否有可能是约束过于具体以至于不允许您控制视图的大小? -
@BenP。你是对的。我必须将我的图像设置为仅限制在屏幕的一侧,而不是使用我创建的指南限制在所有侧面。然后它能够调整图像的大小。哇,我从没想过这是个问题。随时发表您的评论作为答案
标签: android imageview layoutparams