Incorrect calculation (Screen Size)


In my application:
StepY = 216
Canvas1.Height = 647
Why?

How and when do you measure Canvas1.Height?
How is Canvas1.Height defined in the Designer attributes of Canvas1?

Sometimes display attributes of a screen object need a moment to change as the object is redisplayed.

I want all components of my application to fill screen on different devises with different aspect ratio. In Designer Cavas1.Height is set to Automatic. Before game start I calculate and set all component's sizes. This info is indicated with debug purposes by Notifier after clicking component to begin new game. Time between sizes writing and reading at least some seconds

What is Screen.Height reported as ?

Screen.Height = 1512
Screen.Width = 941
Devise is Lenovo TB-J606F

This is the usual approach to overcome timing issues

image

However screen sizing and component sizing are not the exact science on App Inventor that we would like to believe. Newer devices may handles things differently

It seems to be dependent on the device (display) density.

On a Galaxy Note8 I get this:

Pixel 2XL:

The result of testing on Redmi Note 8T is:
Screen 392 * 774 : 128 * 3 = 384 :slight_smile:

The results of testing in different scales on Lenovo are:
Screen 600 * 952: 128 * 3 = 384 :slight_smile:
Screen 685 * 1094: 152 * 3 = 456 :slight_smile:
Screen 800 * 1285: 180 * 3 = 540 :slight_smile:
Screen 941 * 1512: 216 * 3 = 647 :frowning:

Is 1 pixel making such a huge difference? If you need an even number then you can fix that with your calculation?

Of course, 1 pixel isn't "making weather" in my application.
But IMHO this fact will be interesting to others.
Thanks for all answers.
It's really cool to get help from power users.