Я делал это в прошлом, и я разочарован, потому что этот метод не работает, как я ожидал. У меня есть изображение, размер которого я хочу изменить до определенных размеров, и я использую код ниже:
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)
, и они находятся где-то в сотнях. Я поместил его в обработчик, чтобы получить правильный getLayoutParams()
, потому что в прошлом у меня были проблемы с этим.
Проблема в том, что когда я распечатываю ширину и высоту, они не совпадают с тем, что я установил для них внутри params.width
и params.height
. Что я здесь делаю неправильно?
snellen
являетсяConstraintLayout
, возможно ли, что ограничения настолько специфичны, что не позволяют вам контролировать размер представления? - person Ben P.   schedule 02.08.2017