Android 为什么不是';t setLayoutParams是否更改我的ImageView的大小?
我在过去做过这件事,我很沮丧,因为这种方法没有像我期望的那样有效。我有一个图像,我想调整到特定的尺寸,我正在使用下面的代码:Android 为什么不是';t setLayoutParams是否更改我的ImageView的大小?,android,imageview,layoutparams,Android,Imageview,Layoutparams,我在过去做过这件事,我很沮丧,因为这种方法没有像我期望的那样有效。我有一个图像,我想调整到特定的尺寸,我正在使用下面的代码: snellen.post(new Runnable() { @Override public void run() { ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) snellen.getLayoutParams();
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());
}
});
我已经检查了(转换后的*宽度_比率)
和(转换后的*高度_比率)
是什么,它们都在100年代。我把它放在一个处理程序中,这样我就可以得到正确的getLayoutParams()
,因为我以前在这方面遇到过麻烦
问题是,当我打印出宽度和高度时,它们不是我在
params.width
和params.height
中设置的值。我在这里做错了什么?尝试使用snellen.requestLayout()
我希望这能帮助你因为你正在将snellen
的LayoutParams
转换为ConstraintLayout.LayoutParams
,你的观点很可能是ConstraintLayout
的产物
如果是这种情况,问题可能是视图的尺寸是由其约束集定义的,因此更改params.width
和params.height
将无效
检查视图的约束,确保它们不会决定视图的尺寸。何处?在snellen.setLayoutParams(params)之后的.post上方或对getLayoutParams的调用上方;但我检查的是,您尝试分配的值没有分配给ImageviewYeah只是尝试添加它,但它似乎没有做任何事情。无论如何,谢谢imageview/a的父布局是什么?看起来应该可以工作,不是吗?请看另一种方法。由于
snellen
的父对象似乎是ConstraintLayout
,是否有可能这些约束太过具体,不允许您控制视图的大小?@BenP。你是对的。我必须将图像设置为仅限于屏幕的一侧,而不是使用我创建的指导方针将图像限制在所有侧面。然后它可以调整图像的大小。哇,我从没想到这会是个问题。请随意发表您的评论作为回答