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:

  • Wie kann ich Android MediaStore Content Provider abfragen, um verwaiste Bilder zu vermeiden?
  • Android-Gerät wird offline angezeigt, obwohl Sie USB einstecken und das USB-Debugging einschalten
  • Wie kann ich Android SDK Tools auf eine frühere Revision zurücksetzen?
  • Absicht, eine Navigationsaktivität zu starten
  • Game Engine für iPhone / Android
  • Wie man das Projekt zurück zu einem früheren Commit im Android-Studio zurücksetzt
  •  <?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?

  • Wie schließe ich das Schubladen-Layout auf BackPress in Android?
  • Google Play Developer ändert die Heimatwährung
  • Android SQLiteDatabase Abfrage Sortierreihenfolge
  • Wann brauche ich android.hardware.location.gps und android.hardware.location.network?
  • Wie kann ich eine benutzerdefinierte Ansicht programmgesteuert ändern?
  • Dex kann nicht ausgeführt werden: Methode ID nicht in : 65536
  • 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.