Il fatto è che io, creo prima un pannello con il Designer, ma poi inserisco elementi a mano (in questo aso le carte).
Inserendo le percentuali (specialmente di Width ed Heigth), queste, non riescono a trasformarsi in base alla dimensione el dispositivo (sul 4.5 si vedono grandi,s sul 7" piccole).
Ora, seguento il semplice codice che ti ho dato, come posso far in modo che queste create da codice si ridimenionino in base al dispositivo?
Ho provato facendo riferimento alla dimensione del Panel in cui si trovano, ma non funziona.
PS: mi sono accorto che lo Scale non lo utilizzo.
T' ho pizzicato, sei toscano, non romano!
ma poi inserisco elementi a mano (in questo aso le carte).
Dopo farò una prova pratica ma intanto ti dico come DOVREBBE funzionare.
Come ti ho detto, se utilizzi il Designer (sia per una intera Activity che per un Panel) DOPO che lo hai caricato devi adattarlo utilizzando Scale.
Poi, ogni volta che aggiungi qualche altra view, se esprimi le sue dimensioni e posizione in dpi devi adattarla con Scale.ScaleView, se le esprimi con le percentuali non devi fare altro.
Mettiamo che io ho un variant standard, 320x480. Disegno un panel con dentro un paio di tasti. Lo carico con LoadLayout e poi:
Scale.Initialize (se non l'ho già inizializzato altrove)
Scale.ScaleAll(Panel1, True)
Private MyButton as Button
MeButton.Initialize("MyButton")
e qui, a pensarci bene, potresti fare in due modi, con i dpi:
Panel1.AddView(MyButton, 10dip, 10dip, 50dip, 100dip)
Scale.ScaleView(MyButton)
oppure
Panel1.AddView(MyButton, 10dip * Scale.ScaleX, 10dip * Scale.ScaleY, 50dip * Scale.ScaleX, 100dip * Scale.ScaleY)
con le percentuali:
PIFFERI: ma quando mi sveglio?
Non ti funziona perché utilizzi 10%x, che corrisponde al 10% dello Screen, non del Panel!
Dovresti usare Panel1.Width * (10/100), per avere il 10% (o direttamente * 0.1)