What exactly do you expect ?
If you have screen sizes of 3.5'', 5', 7'' or 10'', this means that the 10'' screen is 2.8 times (linear) bigger than the 3.5'' screen.
For me, expecting to have a same layout for both screens (3.5'' and 10'') is non sense, anything that looks good on a small screen looks bad on a big screen and vice and versa.
So, finaly you must choose what you want to display on what screen.
One solution would be to have one layout set for screens up to 6'' and another layout set for screens bigger than 6''.
You can then load the relevant layouts according to the screen size.
Then when using %x, %y or dip values depends also on what you want.
If you want to have a view having the almost the same dimensons on every screen you should use dip values.
If you want to have the view dimensions proportionaly to the screen dimesions use %x and %y values.
The solution would be a mix of both, depending on what you want.
You may use ScrollViews to take into account the different Height/Width ratios.
You could use %x for horizontal scaling and dip values for vertical scaling in a ScrollView.
Unfortunately there is no universal nor magic method to cover all screen sizes.
One of my programs, I first wrote it for tablets only.
Then I wanted it also on smartphones and developed a specific application with its own layouts.
But, maintaining two applications is a nightmare so I merged both programs into one.
The principle is:
- screen orientatios: only portrait on smartphones and only landscape on tablets
- display one layout on the smartphones and two layouts side by side on tablets, using panels.
Your code needs to manage both sceen size layouts.
Finaly it was not that difficult.
I didn't use autoscale in this application, but used the DesignerScripts and anchors.