Benutzertools

Site-Tools


Handbuch:Erweitert:Anpassung:Bildschirme

Benutzerdefinierte Bildschirme und Dashboards


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

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

Aber, Dashboard ist nur für die Pro-Version verfügbar und vermisst einige erweiterte Möglichkeiten wie das Drehen von Bildern, 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 sie direkt in das Ergebnis einfügen. 9-Patch müssen vorkompiliert werden!).

Verwenden eines einfachen Texteditors

Sie müssen keine vorherigen Schritte ausführen. Sie können die XML-Datei direkt in jedem Editor bearbeiten. Die vorherigen Schritte sind nur eine empfohlene Methode zum einfachen Erstellen von „Drag and Drop“ und auch die einzige Möglichkeit, 9-Patch-Bilder 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 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

Ansichten

  • 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 - Verweis auf drawable, tatsächlich zentriert und um den Mittelpunkt gedreht um den durch die Aktion definierten Winkel
    • locus:rotatePivotX - Rotationspunkt um X-Wert verschieben (+X nach unten)
    • locus:rotatePivotY - Rotationspunkt um Y-Wert verschieben (+Y nach unten)
    • locus:rotateStartAngle – Winkel, bei dem die Rotation beginnt mit dem Wert „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 - 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 – 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 Ausrichtungswinkel 180° beträgt, wird das erste Pixel (slideStartPosition) wirklich als erstes Pixel gezeichnet. Da der definierte Gesamtbereich von 0° - 360° reicht und der Endwert die Position am Ende hat (locus:slideEndPosition="match_parent"), wird das Bild über den gesamten Bildschirm gestreckt. Bildmitte (S), wird in der Mitte sein, wie wir wollen!
  • 2. Wenn die Ausrichtung beispielsweise 90° beträgt, berechnet Locus Map zunächst den prozentualen Teil des Bildes, der verschoben werden sollte. 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

Auf alle Ansichten können diese Attribute 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 angewendet werden auf: Geschwindigkeit, Entfernung, Höhe und Genauigkeit jetzt
manual/advanced/customization/screens.txt · Zuletzt geändert: 2015 09:03 von 127.0.0.1