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。你是对的。我必须将图像设置为仅限于屏幕的一侧,而不是使用我创建的指导方针将图像限制在所有侧面。然后它可以调整图像的大小。哇,我从没想到这会是个问题。请随意发表您的评论作为回答