German negative Werte für Position

Moosi

Member
Licensed User
Longtime User
Hallo,

ich seh den Wald vor lauter Bäumen nicht mehr. Ich möchte ein einfaches Panel außerhalb des Screens erstellen um es bei gegebener zeit in den sichtbaren Bereich zu schieben.

Wie gebe ich beim AddView denn negative Werte an?

Activity.AddView(wwPanel, 60dip, -700dip, 1800dip, 700dip)

klappt nicht. Das Panel hat hinterher eine Höhe von 0

Ich würde mich über einen Stubs in die richtige Richtung freuen.
 

Moosi

Member
Licensed User
Longtime User
ich möchte es per animate dann in den screen fahren. von -700 nach 200
 

Moosi

Member
Licensed User
Longtime User
Ich weiss nicht warum sich die Höhe ändert.
Wenn ich z.B. Activity.AddView(wwPanel, 60dip, -650dip, 1800dip, 700dip)
mache, wird mein Panel 50 hoch. Es wird alles oberhalb quasi abgeschnitten.

Das Ganze am unteren Bildschirmrand, also mit positiven Werten klappt wie erwartet.

Kann es am SDK liegen. 4.2.2 ?
 

klaus

Expert
Licensed User
Longtime User
Nochmals, wo und wie bekommst Du die Höhe von 0 !?

Dieser Code funktioniert !

B4X:
Sub Process_Globals
   Dim Timer1 As Timer
End Sub

Sub Globals
   Dim pnlTest As Panel
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Timer1.Initialize("Timer1", 20)
   pnlTest.Initialize("pnlTest")
   pnlTest.Color = Colors.Red
'   Activity.AddView(pnlTest, 60dip, -700dip, 1800dip, 700dip)
   Activity.AddView(pnlTest, 60, -700, 1800, 700)
End Sub

Sub Activity_Click
   Timer1.Enabled = True
End Sub

   
Sub Timer1_Tick
'   pnlTest.Top = pnlTest.Top + 20dip
   pnlTest.Top = pnlTest.Top + 20
   If pnlTest.Top >= 0 Then
     Timer1.Enabled = False
   End If
End Sub
Wenn Du auf den Bildschirm klickst verschiebt sich das Panel nach unten wie rewartet.
Ich habe die dip Werte rausgenommen weil mein Gerät HD ist aber mit einer Density von 3.
Das heisst dass alle dip Wert mit 3 multiplizeirt sind.
 

Attachments

  • Test.zip
    8.9 KB · Views: 238

Moosi

Member
Licensed User
Longtime User
Vielen Dank Klaus,

Ich habe das Problem nur bedingt eingrenzen können.
Dein Test funktioniert natürlich.
Jetzt wollte ich das reinfahren des Panels per Animation.Start() machen und ganau das klappt nicht.
Es scheint das im Zusammenhang mit der Animation Klasse und den negativen Werten irgendetwas nicht stimmt.
Ich habe es aber einfach umschifft und verschiebe das Panel ähnlich wie in Deinem Beispiel. Fertig!

Vielen Dank nochmal für die Hilfe
Moosi
 

klaus

Expert
Licensed User
Longtime User
Kannst Du ein kleines Testprogramm schreiben welches das Problem zeigt, Ich schau dann mal rein.
Du schreibst dass Du die Animation Klasse benutzt, bist Du sicher dass es eine Class ist und nicht die Animation Library ?
Ich habe noch nie mit der Animation Library gearbeitet.
 

Moosi

Member
Licensed User
Longtime User
Es ist natürlich die Library und keine Class. :)

Ich bin ein wenig im Stress, weil die App fertig werden muss. Mal sehen, wann ich es schaffe einen Test zu machen.
 
Top