Tempo fa, la mia idea era di utilizzare le percentuali, che risolverebbero tutto.
Il punto è che scriverle tutte a manina è una rotturina e si può fare una casina (sarebbe casino, ma è per la rima!).
Alura, pensai di fare così:
disegno le view col designer e, in ognuna di esse, metto come Tag il nome della view stessa.
Nella app ho (avevo) un modulo che scansionava tutta un'activity e, per ogni view, calcolava tutte le percentuali necessarie;
dopodiché creava il codice per la generazione della view, tipo:
Private edtCliente as EditText
edtCliente.Initialize("edtCliente")
acvitity.AddView(edtCliente, ....)
Quindi ottenevo tutto il codice per la costruzione delle view (avevo verificato: anziché occupare più memoria, creando il tutto via codice invece che tramite Designer, ne occupava di meno!)
Il punto era la scocciatura di dover utilizzare i Tag; sarebbe stato perfetto se avessi potuto ottenere i nomi delle view tramite codice, nel modulo "generatore".
Ah, chiaramente questo modulo serviva solo per quanto detto sopra; nell'app definitiva lo toglievo.
_______________________________________________________________________________________
Tutta 'sta pappardella per dire a Mamo che si può evitare di fare tutto a manina, utilizzando le percentuali.
Finora, non ho avuto problemi col modulo Scale.
Carico un layout e lo "scalo" con Scale.ScaleAll(Activity, True) preceduta dalla inizializzazione, se non è già stato fatto (ma dato che lo faccio nella Create del Main...!)
Solo tre cose sono da tenere a mente:
a) se disegno il layout con la variant standard, utilizzo Scale.Initialize;
se invece uso un variant adatto al mio smartphone, 480x800-1.5, uso Scale.SetReferenceLayout(480, 800, 1.5)
b) se DOPO aggiungo altre view da codice, scalo anche queste, semplicemente con scale.ScaleView(MyView)
c) se nel codice sposto o ridimensiono qualche view, utilizzerò i fattori di scala Scale.GetScaleX e Scale.GetScaleY per le nuove misure.