Mit den direkten Angaben als Zahlen, verwendest Du die wirkliche Auflösung des jeweiligen Gerätes. Ist das Gerät hochauflösend und z.b. 1440pixel breit, dann sind 30 eben sehr schmal, eben gerade mal 2% der Bildschirmbreite. Auf einem Display mit nur 320pix Breite ist alles schon viel größer.
Mit den
dip-Angaben als Koordinaten verwendest Du eine virtuelle Auflösung die auf den verschiedenen Geräten nahezu identisch wirkende Elemente ergibt. Ist das Gerät hochauflösend und z.b. 1440pixel breit, dann sind 30dip eben schon viel breiter, weil das Gerät 4x so gut auflöst wie ein "Ur-Display". Auf dem kleinen Display ist der Button jetzt optisch genauso groß wie auf dem großen
Der Vorteil der beiden Möglichkeiten liegt darin, auch im Querformat die gleiche Buttongröße zu erhalten wie im Hochformat. Auch sehen 30dip senkrecht genauso groß aus wie 30dip waagrecht.
Du weißt aber nie, ob deine Button die gesamte Bildschirmbreite füllen. Versuch doch mal mit Prozenzangaben zu arbeiten. Es gibt doch auch diese Möglichkeit:
For i= 0 To 41
MyButton(i).Initialize("ButtonEvent")
WoX= i mod 7
WoY= i / 7
MyPanel.AddView(MyButton(i), WoX*13%x, WoY*13%y, 12%x, 12%y)
Next
Du kannst auch wild kombinieren. Also z.b. die Buttons in der Breite mit Prozenzangaben dazu bringen die Bildschirmbreite zu füllen. Mit
dips bei den y-Werten zwingst du sie, eine bestimmte lesbaren Größe zu haben:
For i= 0 To 41
MyButton(i).Initialize("ButtonEvent")
WoX= i mod 7
WoY= i / 7
MyPanel.AddView(MyButton(i), WoX*13%x, WoY*30dip, 12%x, 28dip)
Next