Italian primi tentativi e primi dubbi

powerflash

New Member
Ciao a tutti, mi sono appena iscritto e da poco cominciato a smanettare con i vari tutorial, mi sorge un dubbio però relativamente alla risoluzione dello schermo.
Possiedo un tablet android quindi per adesso credo che farò i miei test con questa risoluzione ma nel caso di un progetto definitivo quante versioni di screen conviene produrre? l'ideale sarebbe farne 3? una per smartphone, quella per tablet 7" e quella per i 10" ? oppure sarebbe opportuno produrre l'applicazione su tutte le risoluzioni più conosciute ?.. che non so quante siano
 

ivanomonti

Expert
Licensed User
Longtime User
Ciao a tutti, mi sono appena iscritto e da poco cominciato a smanettare con i vari tutorial, mi sorge un dubbio però relativamente alla risoluzione dello schermo.
Possiedo un tablet android quindi per adesso credo che farò i miei test con questa risoluzione ma nel caso di un progetto definitivo quante versioni di screen conviene produrre? l'ideale sarebbe farne 3? una per smartphone, quella per tablet 7" e quella per i 10" ? oppure sarebbe opportuno produrre l'applicazione su tutte le risoluzioni più conosciute ?.. che non so quante siano

Per ogni cosa esiste la soluzione, anche usando poche righe di codice, ma e stato implementato un tools per la gestione degli infiniti schermi.

trovi degli esempi pratici e altri meno ma questo problema e minore, io ad esempio uso questo codice e mi trovo bene


crea una classe e usa questo codice, io per mia comodità uso pannelli, ogni pannello i propri controlli, in questo modo puoi organizzarti tutta app in una sola activity e tanti pannelli, o per ogni activity il suo pannello, vedi tu come vuoi gestire la cosa.

B4X:
Sub SettingLayoutPanel(ac As Activity, pn As Panel)

    Dim xleft, xtop, xwidth, xheight, lwidth, lheigh As Int
    Dim ScaleX, ScaleY As Float

    lwidth = ac.Width ' larghezza display
    lheigh = ac.Height ' altezza display
    
    ScaleX = lwidth / 320 / Density
    ScaleY = lheigh / 430    / Density    ' 480 - 2 * 25  

    For i = 0 To pn.NumberOfViews-1
        ' calculate
        xleft = pn.GetView(i).Left * ScaleX
        xtop = pn.GetView(i).Top * ScaleY
        xwidth = pn.GetView(i).Width * ScaleX
        xheight = pn.GetView(i).Height * ScaleY
        ' setting object
        pn.GetView(i).SetLayout(xleft,xtop,xwidth,xheight)
    Next
   
End Sub

poi passi il tutto dalla activity o da richiesta

B4X:
Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("Main_Login")
   Panel1.Width = 100%x
   Panel1.Height = 100%y
   Panel1.Color = Setting.getColor(1)
   Dim c As ClassLayout
   c.Initialize()
   c.SettingLayoutPanel(Activity, Panel1)
End Sub

Mi trovo bene su Galaxy ace, Galaxy sII, Galaxy Note 10 e credo di aver coperto una buona parte dei display.
 
Top