Customer Seekbar - Versatz

  • Hey, ich bins nochmal.


    Ich hab noch ein kleines grafisches Problem und weis nicht wo ich da suchen soll.
    Ich habe 4 Customer Seekbars (jeweils ein Hintergrund und dazu sozusagen "LED's " welche ich verschieben kann.
    z.B.

    LED =


    Ebenso ist noch eine default Seekbar mit dabei.
    Wenn ich die App z.B mit einem Virtual Device (Samsung Galaxy 10.1 2014) simuliere stimmt alles perfekt.

    Wenn ich allerdings die richtige Hardware anschließe und darauf die App laufen lasse habe ich immer einen Versatz der LED zum Hintergrund.
    Die LED ist aber in der Grafik Zentral und nicht mit einem Versatz im Hintergrund platziert.
    Sogar bei der default Seekbar ist ein Versatz ??
    Hier ein Bild dazu.


    Was ist da der Grund ?
    Wenn ich immer, egal ob Virtual oder richtige Hardware den Versatz hätte würde ich es ja verstehen, aber so ??
    Gruß

  • Hey
    also das Virtual Device und die Hardware haben die gleiche Auflösung.
    Das kann es doch aber eigentlich gar nicht sein. Ich kann mir gerade nicht vorstellen was nur ein vertikaler Versatz mit der Auflösung zu tun hat. Das Problem ist ja ausserdem bei dem zusätzlichen default Seekbar auch zu sehen.
    Hattest du das Problem auch schon mal?
    Gruß

  • Danke für deine Info. Hab gerade etwas wenig Zeit.(bin auch nicht zuhause) Werde die Layout Datei so bald es geht zu Verfügung stellen.
    Mit den Support libs müsste ich eigentlich auf dem neuesten Stand sein. Zumindest bin ich mit den Updates auf dem neuesten Stand.

  • Hier mal der Code (wie gesagt der Versatz ist bei beiden)
    einer von der "default Seekbar"
    Es sieht auch so aus, dass es nur von allen Seekbars einen Versatz gibt. Der Rest scheint OK zu sein.


    und hier die custom seekbar

  • Etwas ist mir aber gerade aufgefallen.
    Weis nicht ob das ein Problem sein könnte und wenn ja,wie ich das programmtechnisch lösen könnte.
    Das Virtuel Device und die Hardware haben unterschiedliche Versionen.
    Zur Info:Galaxy Note 10.1 2014 und SM-P605 ist aber das gleiche

  • Also ich hab jetzt genau das Selbe Virtual Device aufgebaut wie die Hardware (API22)
    Nun ist der Versatz auch auf dem Virtual Device zu sehen.


    Jetzt hab ich gleich 2 Probleme
    1) warum hab ich den Versatz ( ich hab auch nochmal eine Default seekbar platziert - gleicher Fehler)
    2) Wie kann man denn nun so was umgehen ??
    Ich kann doch nicht "tausend" verschiedene Geräte mit unterschiedlichen API ( Android Versionen) testen.
    Dann kommen auch noch die verschiedenen Auflösungen dazu hdpi hdpix ...
    Das wird ja Lustig.


    Kannst du mir da einen Tip dazu geben.
    Gruß

  • Also ich hab noch was gefunden.
    Es liegt scheinbar an der Layout Height.
    Wenn ich diese auf 0 Stelle dann ist alles im Centrum.
    Ich muss aber die Layout höhe verstellen, ansonsten stimmt der Background nicht.
    API23 (6.0) ist das scheinbar egal aber API22 (5.1) aber nicht.
    Muss ich das anders lösen ? Wenn ja wie ?

  • also der Style ist es nicht > hab ich ausprobiert
    Den Thumb Offset brauche ich, da der beginn sonst nicht mit dem Background zusammen stimmt. Der Background enthält nämlich einen Rahmen und Zahlen. Sieht man weiter oben.
    Ausserdem ist der Thumb Offset in der Horizontalen(links nach rechts). Mein Problem ist der vertikale Versatz.
    Das mit dem Relativen Layout muss ich erst ausprobieren

  • Also ich hab ein Realtiv Layout in meinem Constraint Layout erzeugt. Darin habe ich eine Seekbar verschoben.
    Das ändert gar nichts. Ich werde jetzt noch ein paar andere Versuche starten.
    Wie erzeugst du eigentlich eine custom seekbar ? Also eigener Hintergrund mit eigenem Thumb (thumb ist hoffentlich der richtige ausdruck für den "Kreis" den man von links nach rechts schieben kann)

  • Hey
    also warum ein Offset.
    Ohne Offset fängt er so an wie links, mit Offset so wie rechts. Die Zahlen und der Text und der Schwarze Bereich mit Rahmen rundrum gehören zum Hintergrund (so sieht die Hardware auch in echt aus und ich simuliere damit die Hardware)
    Ich kann auch z.B. nicht den max ProgressCount ändern sonst würde die Anzahl der LED's nicht mehr richtig dargestellt werden.

    Ich hab es jetzt hingekriegt, dass die LED's wieder in der Mitte sind.
    Komsicher Weise kann ich den Thumb Offset einstellen, aber kaum hab ich die Seekbar berührt springt er so als ob es nie einen Offset gegeben hat. Bei der Default seekbar funktioniert das allerdings ohne Probleme.
    Daran knabbere ich nun schon einige Stunden.
    Vielleicht hast du ja einen anderen Tip. Ich könnte natürlich den Hintergrund ändern und z.B. die Texte näher zusammen rücken, aber dann wird es recht unleserlich auf dem Tablet.
    Der Hintergrund sieht z.B. original (mit gimp erstellt)

    Das Problem mit dem Versatz habe ich nun so gelöst.
    width und height auf wrap content und dafür max min Heigtht und Width auf den wert den ich haben möchte.
    Hoffentlich gibt das nicht später andere Problem > verschiedene Tablets usw.

  • nein die LED ist OK.
    Ich hatte noch einen Fehler. Ich habe die Seekbars in 2 verschiedene Variablen definiert. Das habe ich geändert. War aber nicht der Grund.
    Ich habe eine Abfrage gestartet getThumbOffset. Komischer weise stand der immer auf 10 und nicht auf 14 so wie ich ihn bei den seekbar Eigenschaften definiert habe. Beim App Start hat die Grafik immer gestimmt. 1 Mal die Seekbar verschoben und dann war der ThumbOffset wieder falsch.


    Ich habe es nun anders gelöst. Überall das ThumbOffset gelöscht und PaddingStart und PaddingEnd auf 7 gestellt (etwa die Hälfte von meiner LED).
    Danach musste ich zwar die height und width der Seekbars nochmal anpassen aber nun passt es.


    Lieber wäre es mir gewesen ich hätte den Fehler gefunden / verstanden.
    Aber was solls, hauptsache es funktioniert jetzt.


    Danke für deine Hilfe :)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!