Android - Setze eine ProgressBar als vertikalen Balken statt als horizontalen Balken?
Ich bin versucht, eine ProgressBar als metering-ähnliches display. Ich dachte, es ging um eine einfache Aufgabe, und dachte, dass die ProgressBar hatte eine Eigenschaft, um festgelegt werden, vertikale, aber ich bin nicht zu sehen, nichts.
Zusätzlich möchte ich in der Lage sein zu zeigen, Herrscher wie Kennzeichen an der Seite entlang der Leiste, um eindeutig die aktuelle Ebene.
Zeiger geschätzt - vielen Dank!
InformationsquelleAutor der Frage bursk | 2010-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vertikalen Balken werden standardmäßig nicht unterstützt.
InformationsquelleAutor der Antwort Romain Guy
Ich hatte vor kurzem über die Notwendigkeit für eine vertikale Statusanzeige, aber nicht in der Lage war, eine Lösung zu finden, die mithilfe der bestehenden Progress Bar widget. Die Lösungen, die ich kam in der Regel erforderlich, eine Verlängerung der Laufenden Fortschrittsbalken oder eine völlig neue Klasse, in der es sich von selbst. Ich war nicht überzeugt, die Einführung einer neuen Klasse zu erzielen, die eine einfache Orientierung zu ändern war notwendig.
Dieser Artikel stellt eine einfache, elegante, und vor allem eine nicht-hack-Lösung zu erreichen, ein vertikaler Fortschrittsbalken.
Ich werde überspringen Sie die Erklärung und geben Sie einfach eine nullachtfünfzehn-Lösung. Wenn Sie weitere Einzelheiten fühlen Sie sich frei, mich zu Kontaktieren oder einen Kommentar unten hinterlassen.
Erstellen Sie eine xml-Datei in Ihrem drawable-Ordner (nicht drawable-hdpi oder drawable-mdpi -- setzen Sie es in drawable). Für dieses Beispiel nenne ich meine xml vertical_progress_bar.xml
Hier ist, was in der xml-Datei:
Erstellen Sie eine xml-Datei namens styles.xml und legen Sie es in res/values. Wenn Ihr Projekt bereits enthält styles.xml in res/values dann überspringen Sie diesen Schritt.
Ändern Sie Ihre styles.xml Datei, und fügen Sie den folgenden code am Ende der Datei:
Fügen Sie Ihre neue vertikale Fortschrittsbalken zu Ihrem layout. Hier ist ein Beispiel:
Werden sollte, dass alle Sie tun müssen, um zu machen, verwenden Sie eine vertikale Fortschrittsbalken in Ihrem Projekt. Optional, müssen Sie möglicherweise benutzerdefinierte drawable neun-patch Bilder, die Sie verwenden für die progress-bar. Sollten Sie die entsprechenden änderungen in der progress_bar_vertical.xml Datei.
Ich hoffe, dies hilft Ihnen in Ihrem Projekt!
InformationsquelleAutor der Antwort jagsaund
Erstellen Sie Ihre eigenen benutzerdefinierten progressbar.
In Ihrer xml-fügen Sie diesem layout:
VerticalProgressBar.java
Oder :
Jagsaund Lösung ist auch nicht perfekt.
InformationsquelleAutor der Antwort Ramesh Akula
Ich weiß, dass es eine alte post, aber ich fand eine sehr einfache Lösung für dieses problem, vielleicht kann jemand helfen.
Zuerst erstellen Sie eine progress_drawable_vertical.xml wie diese:
Dann verwenden Sie einfach diese in Ihre progressBar:
Ich habe auch eine erstellt progress_drawable_horizontal.xml
mit der objetive von mantain gleichen Stil definiert progress_drawable_vertical.xml
Der Schlüssel ist hier die richtige Nutzung der
android:clipOrientation
undandroid:gravity
.Fand ich diese Lösung hier und der Kern der Lösung ist ähnlich jagsaund aber etwas einfacher.
InformationsquelleAutor der Antwort Daniel S.
Fand ich die wohl beste(einfachste & vielseitigsten) Lösung:)
Dies ist eine alte post, aber es war so schwer für mich zu finden, diese so einfache Lösung, so dass ich dachte, ich sollte es posten..
Einfach ein
scale-drawable
(oder ein 9-patch, wenn du möchtest), keine Notwendigkeit für einen ANDEREN code.Beispiel:
Und natürlich der normale code:
Beachten Sie die
scale-drawable
's xml-Linien (die Magische Linien):InformationsquelleAutor der Antwort guy_m
Nutzen die ProgressBar und stellen Sie es senkrecht, müsste man erstellen Sie Ihre eigenen benutzerdefinierten Ansicht, die die ProgressBar-Ansicht und überschreiben der onDraw () - Methode. Dies ermöglicht es Ihnen, ziehen Sie es in umgekehrter Orientierung. Werfen Sie einen Blick auf die Quellcode der
ProgressBar.onDraw()
(befindet sich unten auf dem link), um Hilfe, wie dies zu tun. Best-case-Szenario, müssen Sie sich nur noch tauschen, ein paar x-und y-Variablen.InformationsquelleAutor der Antwort John Leehey
Erstellen der Fortschrittsbalken (ich umgewandelt mein code von c# zu java also möglicherweise nicht 100% korrekt)
vertical_progress_bar.xml
vertical_progress_bar_blue_progress.xml
Was Los ist, um Ihre bar vertikal ist die
scaleHeight
undscaleGravity
Attribute invertical_progress_bar.xml
.Landet es suchen so etwas wie dieses:
InformationsquelleAutor der Antwort Met-u
Ich habe genaue das problem. Machen Sie eine benutzerdefinierte Klasse (Erweiterung der ProgressBar) erstellen Sie code, die sind schwer zu pflegen. Mit einem custom Stil verursachen Kompatibilitätsprobleme mit verschiedenen theme vom neuen OS (z.B. lollipop)
Schließlich habe ich mich nur für eine rotation-animation für einen horizontalen Fortschrittsbalken. Inspiriert von Pete.
Code:
InformationsquelleAutor der Antwort Pan Ng
Einfach progrebar Bild anzeigen
Beispiel
einfach Klasse
}
InformationsquelleAutor der Antwort Vahe Gharibyan
InformationsquelleAutor der Antwort Anupam Bose
Android:rotation="270" zu 100% sein, wie von unten nach oben oder android:rotation="90" bis 100% sein, wie von oben nach unten
InformationsquelleAutor der Antwort Beto Caldas