Zeichnung der oberen Grenze auf eine Form auf Android

Ich WebView eine benutzerdefinierte Fortschrittsleiste (positioniert unter einem WebView ) und was ich zeichnen möchte, ist eine 1dp-breite Linie zwischen dem WebView und der ProgressBar . Ich modifiziere die vorhandene Zeichenkette, nämlich progress_horizontal.xml , und habe so etwas versucht:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> (...) <item> <shape android:shape="line"> <stroke android:width="1dp" android:color="#FF000000" /> </shape> </item> </layer-list> 

Diese Linie ist jedoch vertikal zentriert, aber ich möchte, dass es auf die Zeichenkohle gezogen wird. Die einzige Idee, mit der ich kommen könnte, ist, diesen "hackigen" Steigung zu benutzen:

  • Android check location services aktiviert mit play services location api
  • Kann nicht plattieren Android android: Fehler: EACCES
  • Android: Kann diesen Vorgang nicht ausführen, da der Verbindungspool geschlossen wurde
  • Wie benutzt man Wörterbuch (wie iphone NSDictionary) in android?
  • Wie kann ich das Standard-Scope in IntelliJ 12 für Find Usages einstellen?
  • Hinzufügen von Plugins aus dem Revisionsprogramm von Github zum Cordova-Projekt
  •  <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> (...) <item> <shape> <gradient android:startColor="#FF000000" android:centerColor="#00000000" android:centerY="0.01" android:endColor="#00000000" android:angle="270" /> </shape> </item> </layer-list> 

    Haben Sie bessere Ideen, wie man eine einzelne Linienform an die Spitze der Zeichenkette mit layer-list definiert zu zeichnen?

  • Was ist UID auf Android?
  • Volley Timeout Fehler
  • Verschlüsselt Video auf der Fliege von Android-Kamera
  • Erhalten Sie Crash Report in Google Analytics
  • Android-Kamera: Datenabsicht gibt Null zurück
  • Wie bekomme ich den Anwendungsnamen in Android?
  • 4 Solutions collect form web for “Zeichnung der oberen Grenze auf eine Form auf Android”

    Ich habe eine Weile verbracht, um das auch herauszufinden. Hoffentlich gibt es einen besseren Weg, es zu tun, aber hier ist die Methode, die ich verwendet habe, was auch irgendwie hackish ist, aber falls es jemandem hilft, dachte ich, ich würde teilen.

    Das erste Element in deiner Schichtliste sollte ein solider von jeder Farbe sein, die du deine Grenze sein möchtest. Im Folgenden wäre das Ding (s), das du die Grenze haben möchtest, mit Polsterung auf welcher Seite du auch die Grenze haben willst.

    Beispielsweise:

     <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="YOUR BORDER COLOR" /> </shape> </item> <item android:top="YOUR TOP BORDER THICKNESS"> THE THING YOU WANT A BORDER ON </item> </layer-list> 

    Die Idee ist, dass die Polsterung auf dem Artikel die feste Form hinter sich zeigt, was die Grenze aussieht. Du könntest auf jede Seite Polsterung hinzufügen, um einen Rahmen hinzuzufügen. Ich stelle mir vor, du könntest komplizierter werden und auch so farbige Grenzen haben.

    Scheint wie ein Hack, aber es hat für mich gearbeitet.

    EDIT: Ich sagte "padding" aber in Layer-Listen ist es eher ein Offset.

    Ich ging durch alle verwandten Themen, aber niemand konnte mein Problem lösen. Aber einige von ihnen waren sehr nützlich zu verstehen, wie die Layer-Liste oder Form-Parameter funktionieren.

    Mein Problem war, einen Knopf mit einem linearen Steigung zu definieren und eine Oberseite und eine untere Linie in den verschiedenen Farben zu zeichnen. Immerhin habe ich diese Lösung gehackt. Ich habe die Datei unter res / drawable / blue_btn.xml gespeichert

      <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" > <shape android:shape="rectangle"> <solid android:color="@color/blue_end" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> <stroke android:width="1dp" android:color="@color/bottomline_btn" /> </shape> </item> <item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle"> <solid android:color="@color/blue" /> <gradient android:startColor="@color/blue" android:endColor="@color/blue_end" android:angle="270" /> </shape> </item> <item android:top="0dp" android:bottom="-1dp" android:left="-1dp" android:right="-1dp"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="@color/topline_btn" /> <solid android:color="#00000000" /> <corners android:radius="0dp" /> </shape> </item> <item android:top="-1dp" android:bottom="0dp" android:left="-1dp" android:right="-1dp"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="@color/bottomline_btn" /> <solid android:color="#00000000" /> <corners android:radius="0dp" /> </shape> </item> </layer-list> </item> </selector> <color name="topline_btn">#31ffffff</color> <color name="bottomline_btn">#31000000</color> <color name="blue">#449def</color> <color name="blue_end">#2f6699</color> 

    Hast du versucht, es durch so etwas auszutauschen

    http://android.amberfog.com/?p=9

    Meine Lösung ist, 9-Patch als letztes Layer-Item hinzuzufügen:

     <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape> <solid android:color="@color/tab_button_active_layer2" /> </shape> </item> <item android:bottom="@dimen/tab_button_active_bottom_bar_width"> <shape> <solid android:color="@color/tab_button_active_layer1" /> </shape> </item> <!-- 9-patch drawable --> <item android:drawable="@drawable/tab_button_border_top"/> </layer-list> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.