AppInventor 2: изменить размер изображения (холст) пропорционально, чтобы заполнить пространство - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть Canvas с BackgroundImage (выбранным пользователем), который должен заполнить все доступное пространство.

enter image description here

Но если я установлю CanvasВысота / ширина до Fill просто растягивается непропорционально.

А с Automatic он по какой-то причине слишком мал, намного меньше исходного изображения (протестировано в эмуляторе Genymotion и на OnePlus 3T с Android8, в обоих направлениях экрана).

enter image description here

Можно ли изменить его размер до максимально возможного размера, сохраняя соотношение сторон?

Было бы легко, если бы я мог получить размер изображения в блоках, но я не вижу никакого способа сделать это.Я также пытался использовать Canvas Width / Height, но похоже, что они не обновляются сразу после установки изображения (во время инициализации экрана), и я не вижу никаких других событий.

1 Ответ

0 голосов
/ 23 ноября 2018

Решено с помощью Clock (таймер с небольшим интервалом, например 100).

Кажется, это работает, как и ожидалось, на изображении из моего вопроса (1920x1080).Однако на некоторых изображениях я заметил странные проблемы с качеством, например, это было маленькое изображение, размер которого был значительно увеличен (особенно это заметно на изображениях, содержащих текст), несмотря на то, что он отлично работает у других зрителей.Но это, вероятно, не связано с этим изменением размера (я даже пытался очистить и установить BackgroundImage снова после изменения размера), вот аналогичный отчет: https://groups.google.com/forum/#!topic/mitappinventortest/_Iro4UKNE1Q

...