我已經完成了這個過去,我很沮喪,因爲這種方法不像我期望的那樣工作。我有我想要調整到特定尺寸的圖像,我用下面的代碼:爲什麼不是setLayoutParams更改我的ImageView的大小?
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
內部。我在這裏做錯了什麼?
看起來它應該工作,不是嗎?看看[這個答案](https://stackoverflow.com/a/40028802/6287910)另一種方法來解決這個問題。 – Cheticamp
因爲'snellen'的父項看起來像是'ConstraintLayout',有沒有可能這些約束是如此特殊,他們不允許你控制視圖的大小? –
@BenP。你是對的。我必須將我的形象設置爲僅限於屏幕的一側,而不是使用我創建的指南來約束各個方面。然後它能夠調整圖像大小。只是哇,我從未想過會成爲一個問題。隨時發表您的評論作爲回答 – cjnash