Benutzertools

Site-Tools


Handbuch:Erweitert:Anpassung:Bildschirme

Benutzerdefinierter Bildschirm


Die Methode zum Erstellen benutzerdefinierter Bildschirme erfordert mindestens grundlegende Kenntnisse über die Entwicklung von Android- und XML-Dateisystemen. Ansonsten empfehlen wir, bereits erstellte Skins zu verwenden. Um sie zu bearbeiten, verwenden Sie einfach ein einfaches NotePad oder eine beliebige Textbearbeitungssoftware mit XML-Syntax-Highlight (z Notepad + +)

Für die meisten Leute, die ihre eigenen Bildschirme erstellen möchten, sollte eine viel einfachere Verwendung ausreichen Armaturenbrett System, das ähnliche Funktionen auf viel weniger schmerzhafte Weise bietet.

Aber, Dashboard ist nur mit Premium verfügbar und vermisst einige erweiterte Möglichkeiten wie rotierende Bilder, völlig freies Layout usw.

Methode mit Eclipse

  1. Laden Sie die Eclipse- und Android-SDK-Tools von herunter und installieren Sie sie hier >>.
  2. Wenn alles funktioniert, erstellen Sie ein neues Android-Projekt. Dadurch wird eine grundlegende Datenstruktur erstellt. Sie müssen nichts programmieren.
  3. Das Projekt enthält res / layout / main.xml Datei - das ist unser Ziel. Lernen Sie, mit Eclipse zu arbeiten GUI Builder und bearbeiten Sie diese Datei.
  4. Legen Sie Ressourcen (am besten 9-Patch-Images verwenden) in Rindfleisch Ordner (unterstützt - zeichenbar, zeichenbar-hdpi, zeichenbar-mdpi, zeichenbar-ldpi)
  5. Nach dem Kompilieren nehmen mail.xml Datei- und Bildressourcen aus kompilierter Quelle (das liegt an 9-Patch-Bildern. Wenn Sie einfache .png-Dateien verwenden möchten, können Sie diese direkt in das Ergebnis einfügen. 9-Patch müssen vorkompiliert werden!).

Verwenden eines einfachen Texteditors

Sie müssen die vorherigen Schritte nicht ausführen. Sie können XML-Dateien direkt in jedem Editor bearbeiten. Die vorherigen Schritte sind nur empfohlene Methoden zum einfachen Erstellen von „Drag and Drop“ und auch die einzige Möglichkeit, 9-Patch-Images zu unterstützen!

Wie es funktioniert

Wurzelverzeichnis: ./Locus/data/customScreen/

Erstellen Sie eine .ZIP-Datei, die diese Struktur enthält:

    /assets/ – für benutzerdefinierte Schriftarten /drawable/ – (9-Patch oder universell) /drawable-hdpi/ /drawable-ldpi/ /drawable-mdpi/ /layout/ – für die Layoutspezifikation (für Quer- und Hochformat oder … unten... zur Trennung nach Orientierung) /layout-land/ /layout-port/ /values/ (unterstützte colors.xml, styles.xml)

Legen Sie Ihre Haupt-Layout-Datei in das Layout-Verzeichnis (oder zwei Dateien, eine in layout-land, die zweite in layout-port) und benennen Sie sie um in main.xml. Das ist wichtig, weil main.xml Datei ist das Tor zum gesamten Layout, sie muss eingebunden werden!

Sie können diese Dateien auch im Stammverzeichnis Ihrer .ZIP-Datei ablegen (optional).

  • icon.png - kleines (48x48px) Logo Ihres Skins
  • info.html - HTML Seite, die eine Beschreibung Ihres Skins enthält (einige Links, Spenden-Button oder ähnliches sind möglich)

Abschließend legen Sie diese .zip-Datei in das oben beschriebene Root-Verzeichnis!

Unterstützte Ansichten

Behälter

Views

  • ImageButton erweitert ImageView
    • locus:actionClick - als Schaltfläche
    • locus:actionVisibility - als Schaltfläche
  • MapScreenView (benutzerdefinierte Ortsansicht) erweitert View
    • keine benutzerdefinierten Parameter
  • RotateView (benutzerdefinierte Ortskurvenansicht) erweitert View
    • locus:action - Anhängen an welche Rotationsaktion… zum Beispiel locus:action=“{orient_course}“
    • locus:rotateImage - ein Verweis auf drawable, tatsächlich zentriert und um einen durch Aktion definierten Winkel um die Mitte gedreht
    • locus:rotatePivotX - Rotationspunkt um X-Wert verschieben (+X nach unten)
    • locus:rotatePivotY - Rotationspunkt um Y-Wert verschieben (+Y nach unten)
    • locus:rotateStartAngle - der Winkel, bei dem die Drehung beginnt mit dem Wert von "rotateStartValue" (- Wert für die Ausrichtung gegen den Uhrzeigersinn)
    • locus:rotateStartValue - Wert für die Variable, die bei rotationStartAngle beginnt (in Basiseinheiten, also Meter, Sekunde, ..)
    • locus:rotateEndAngle – der Winkel, bei dem die Drehung endet, mit dem Wert „rotateEndValue“.
    • locus:rotateEndValue – Wert für die Variable, die bei rotationEndValue endet
  • SlideView (benutzerdefinierte Locus-Ansicht) erweitert Ansicht
    • locus:action - hängt an welche Folienaktion … zum Beispiel locus:action="{orient_course}"
    • locus:slideImage – ein Verweis auf ein zeichenbares Element, das für die Folie verwendet wird
    • locus:slideStartPosition - Position des übereinstimmenden Bildpixels slideStartValue Wert.
    • locus:slideStartValue - Aktionswert für SlideStartPosition (in Basiseinheiten - Meter, Sekunden, ..)
    • locus:slideEndPosition - Positionswert des letzten Bildpixels. Ebenfalls (slideEndPosition - SlideStartPosition) definieren die Breite des Bildes
    • locus:slideEndValue - Aktionswert für slideEndPosition
    • locus:slideInfinite – wenn das Folienbild wiederholt wird, um die gesamte übergeordnete Ansicht abzudecken (true/false) [false]

Stichprobe - Stellen wir uns dieses Bild des Kompasses vor:

Damit es in voller Bildschirmbreite funktioniert, müssen Sie diese Parameter definieren:

    android:layout_width="match_parent" android:layout_height="X" locus:action="{orient_course}" locus:slideImage="X" locus:slideStartPosition="0dip" locus:slideStartValue="180" locus:slideEndPosition="match_parent " locus:slideEndValue="-180" locus:slideInfinite="[true]"

Mit dieser Definition sagt man:

  • 1. Wenn der Orientierungswinkel 180° beträgt, wird das erste Pixel (slideStartPosition) wirklich als erstes Pixel gezeichnet. Da der definierte Gesamtbereich von 0° - 360° reicht und der Endwert eine Position am Ende hat (locus:slideEndPosition="match_parent"), wird das Bild über den gesamten Bildschirm gestreckt. Die Mitte des Bildes (S), wird in der Mitte sein, wie wir wollen!
  • 2. Wenn die Ausrichtung beispielsweise 90° beträgt, berechnet Locus Map zuerst den prozentualen Teil des Bildes, der verschoben werden soll. Es wird berechnet von (aktueller Wert - slideStartValue) / (slideEndValue - slideStartValue), also in diesem Fall (90 - 180) / (-180 - 180) = 25%!. Das bedeutet, dass das Bild um 25 % verschoben wird.

Globale Attribute

Alle Ansichten können mit diesen Attributen angewendet werden:

Benutzerdefinierte Attribute

locus:actionClick

  • {track_record_start}
  • {track_record_stop}
  • {track_record_pause}
  • {map_zoom_in}
  • {map_zoom_out}
  • {map_center}

locus:actionSichtbarkeit

  • {lat_gps} - GPS-Breitengrad (Kartenmitten-Breitengrad, wenn GPS ausgeschaltet)
  • {lon_gps} - GPS-Längengrad (Längengrad der Kartenmitte, wenn GPS ausgeschaltet)
  • {Höhe} - GPS-Höhe (0 wenn GPS aus)
  • {Richtigkeit} - GPS-Genauigkeit (0 wenn GPS aus)
  • {gps_sats_used} - tatsächlich verwendete Satelliten für den GPS-Fix
  • {gps_sats_all} - alle sichtbaren Satelliten
  • {Deklination} - tatsächliche Deklination
  • {orient_course} - Kursorientierung (Quelle abhängig von Auswahl auf GPS-Bildschirm - GPS oder interner Kompass)
  • {orient_course_opposit} - Kursorientierung (Quelle abhängig von Auswahl auf GPS-Bildschirm - GPS oder interner Kompass)
  • {orient_pitch} - Neigungsorientierung
  • {orient_roll} - Rollenorientierung
  • {orient_gps_shift} - Orientierung berechnet als Peilung vom vorherigen zum aktuellen GPS-Standort
  • {orient_gps_angle} - Winkel berechnet als {orient_gps_shift} - {orient_course}, also ist es die wahre Bewegungsrichtung.
  • {Zeit} - genaue Uhrzeit
  • {Geschwindigkeit} - GPS-Geschwindigkeit (0 wenn GPS aus)
  • {rec_dist} - Streckenaufzeichnung - aufgezeichnete Distanz
  • {rec_dist_down} - Streckenaufzeichnung - Abfahrtsstrecke
  • {rec_dist_up} - Streckenaufzeichnung - Bergaufstrecke
  • {rec_alt_min} - Trackaufzeichnung - Mindesthöhe
  • {rec_alt_max} - Trackaufzeichnung - maximale Höhe
  • {rec_alt_down} - Streckenaufzeichnung - Abfahrtshöhe
  • {rec_alt_up} - Streckenaufzeichnung - Höhenmeter bergauf
  • {rec_alt_cumu} - Trackaufzeichnung - kumulierte Höhe
  • {rec_time} - Spuraufnahme - Gesamtaufnahmezeit
  • {rec_time_move} - Trackaufzeichnung - Zeit nur bei Bewegung
  • {rec_speed_avg} - Streckenaufzeichnung - Geschwindigkeitsdurchschnitt
  • {rec_speed_avg_move} - Streckenaufzeichnung - Geschwindigkeitsdurchschnitt nur bei Bewegung
  • {rec_speed_max} - Trackaufzeichnung - Geschwindigkeitsmaximum
  • {rec_points} - Streckenaufzeichnung - Anzahl der aufgezeichneten Punkte
  • {rec_pace} - Streckenaufzeichnung - Anzahl der aufgezeichneten Punkte
  • {map_center_lat} - Breitengrad der Kartenmitte
  • {map_center_lon} - Längengrad der Kartenmitte
  • {map_rotate} - Kartenrotationswert
  • {guide_wpt_name} - Wegpunktname des Führungsziels
  • {guide_wpt_lat} - Führungsziel-Wegpunkt-Breitengrad
  • {guide_wpt_lon} - Länge des Zielwegpunkts
  • {guide_wpt_alt} - Führungsziel-Wegpunkthöhe
  • {guide_wpt_dist} - Führungszielentfernung zum Wegpunkt
  • {guide_wpt_dist_to_finish} - Führungszielentfernung zum letzten Wegpunkt der Strecke
  • {guide_wpt_azim} - Zielazimut zum Wegpunkt führen
  • {guide_wpt_angle} - Führungszielwinkelwert (berechnet als {guide_wpt_azim} - {orient_course})
  • {guide_wpt_time} - Führungszielzeit zum Wegpunkt
  • {guide_wpt_time_to_finish} - Führen Sie die Zielzeit zum letzten Wegpunkt der Strecke

locus:textFont

  • Link zur Schriftart, die im Verzeichnis MySkin/assets gespeichert ist

locus:textFormat

  • Parameter sollten {i}, {d}, {id}, {u} sein „ganzzahliger Teil, doppelter Teil, beide, nur Einheiten“
  • beispielsweise - „locus:textFormat=“{id} - {u}“. Kann jetzt auf Geschwindigkeit, Entfernung, Höhe und Genauigkeit angewendet werden
manual/advanced/customization/screens.txt · Zuletzt geändert: 2023 07:14 von mstupka