Ist es möglich, einen Rand um eine Textansicht zu zeichnen?
android
android-layout
textview
Yamspog
quelle
quelle
Antworten:
Sie können eine zeichnbare Form (ein Rechteck) als Hintergrund für die Ansicht festlegen.
Und Rechteck drawable back.xml (in den Ordner res / drawable legen):
Sie können
@android:color/transparent
für die Volltonfarbe einen transparenten Hintergrund verwenden. Sie können auch Auffüllen verwenden, um den Text vom Rand zu trennen. Weitere Informationen finden Sie unter: http://developer.android.com/guide/topics/resources/drawable-resource.htmlquelle
Lassen Sie mich einige verschiedene (nicht programmatische) Methoden zusammenfassen.
Mit einer Form zeichnbar
Speichern Sie Folgendes als XML-Datei in Ihrem Zeichenordner (z. B. my_border.xml):
Legen Sie es dann einfach als Hintergrund für Ihre Textansicht fest:
Mehr Hilfe:
Verwenden eines 9-Patches
Ein 9-Patch ist ein dehnbares Hintergrundbild. Wenn Sie ein Bild mit einem Rahmen erstellen, erhält Ihre Textansicht einen Rahmen. Alles, was Sie tun müssen, ist, das Bild zu erstellen und es dann in Ihrer Textansicht auf den Hintergrund zu setzen.
Hier sind einige Links, die zeigen, wie ein 9-Patch-Bild erstellt wird:
Was ist, wenn ich nur den oberen Rand will?
Verwenden einer Ebenenliste
Sie können eine Ebenenliste verwenden, um zwei Rechtecke übereinander zu stapeln. Indem Sie das zweite Rechteck etwas kleiner als das erste Rechteck machen, können Sie einen Randeffekt erzielen. Das erste (untere) Rechteck ist die Rahmenfarbe und das zweite Rechteck ist die Hintergrundfarbe.
Durch das Einstellen wird
android:top="2dp"
die Oberseite um 2 Pence versetzt (verkleinert sie). Dadurch kann das erste (untere) Rechteck durchscheinen und einen Randeffekt erzielen. Sie können dies auf den TextView-Hintergrund auf dieselbe Weiseshape
anwenden wie oben.Hier sind einige weitere Links zu Ebenenlisten:
Verwenden eines 9-Patches
Sie können einfach ein 9-Patch-Bild mit einem einzigen Rand erstellen. Alles andere ist das gleiche wie oben beschrieben.
Verwenden einer Ansicht
Dies ist eine Art Trick, funktioniert aber gut, wenn Sie einer einzelnen Textansicht einen Trenner zwischen zwei Ansichten oder einen Rahmen hinzufügen müssen.
Hier noch ein paar Links:
quelle
border: 1px solid #999;
nicht zugelassen werden , dies kompliziert.Die einfache Möglichkeit besteht darin, eine Ansicht für Ihre Textansicht hinzuzufügen. Beispiel für die untere Grenzlinie:
Passen Sie für die anderen Richtungsränder die Position der Trennansicht an.
quelle
Ich habe dieses Problem gelöst, indem ich die Textansicht erweitert und manuell einen Rahmen gezeichnet habe. Ich habe sogar hinzugefügt, damit Sie auswählen können, ob ein Rand gepunktet oder gestrichelt ist.
Und die Grenzklasse:
Hoffe das hilft jemandem :)
quelle
Ich habe mir gerade eine ähnliche Antwort angesehen - sie kann mit einem Strich und der folgenden Überschreibung ausgeführt werden:
quelle
Sie können den Rahmen auf zwei Arten festlegen. Einer ist durch Zeichnen und der zweite ist programmatisch.
Verwenden von Drawable
Programmatisch
quelle
Die einfachste Lösung, die ich gefunden habe (und die tatsächlich funktioniert):
quelle
Ich habe einen besseren Weg gefunden, um eine Textansicht mit einem Rahmen zu versehen.
Verwenden Sie ein Bild mit neun Patches als Hintergrund. Es ist ziemlich einfach, das SDK wird mit einem Tool zum Erstellen des 9-Patch-Images geliefert und beinhaltet absolut keine Codierung.
Der Link lautet http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch .
quelle
Sie können Ihrem Code Folgendes hinzufügen:
quelle
Überprüfen Sie den Link unten, um abgerundete Ecken zu erstellen. Http://androidcookbook.com/Recipe.seam?recipeId=2318
Der zeichnbare Ordner unter res in einem Android-Projekt ist nicht auf Bitmaps (PNG- oder JPG-Dateien) beschränkt, sondern kann auch Formen enthalten, die in XML-Dateien definiert sind.
Diese Formen können dann im Projekt wiederverwendet werden. Eine Form kann verwendet werden, um einen Rahmen um ein Layout zu setzen. Dieses Beispiel zeigt einen rechteckigen Rand mit gekrümmten Ecken. Eine neue Datei mit dem Namen customborder.xml wird im zeichnbaren Ordner erstellt (in Eclipse verwenden Sie das Menü Datei und wählen Sie Neu und dann Datei, wobei der gezeichnete Ordner im Dateinamen ausgewählt ist und klicken Sie auf Fertig stellen).
Das XML, das die Rahmenform definiert, wird eingegeben:
Das Attribut
android:shape
ist auf Rechteck festgelegt (Formdateien unterstützen auch Oval, Linie und Ring). Rechteck ist der Standardwert, daher kann dieses Attribut weggelassen werden, wenn ein Rechteck definiert wird. Ausführliche Informationen zu einer Formdatei finden Sie in der Android-Dokumentation zu Formen unter http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape .Mit den Elementecken werden die abgerundeten Rechteckecken festgelegt. Es ist möglich, an jeder Ecke einen anderen Radius festzulegen (siehe Android-Referenz).
Die Füllattribute werden verwendet, um den Inhalt der Ansicht zu verschieben, auf die die Form angewendet wird, um zu verhindern, dass der Inhalt den Rand überlappt.
Die Rahmenfarbe wird hier auf Hellgrau gesetzt (CCCCCC hexadezimaler RGB-Wert).
Formen unterstützen auch Farbverläufe, aber das wird hier nicht verwendet. Weitere Informationen zum Definieren eines Verlaufs finden Sie in den Android-Ressourcen. Die Form wird mit auf das Laypout angewendet
android:background="@drawable/customborder"
.Innerhalb des Layouts können wie gewohnt andere Ansichten hinzugefügt werden. In diesem Beispiel wurde eine einzelne Textansicht hinzugefügt, und der Text ist weiß (FFFFFF hexadezimales RGB). Der Hintergrund ist auf Blau eingestellt, plus etwas Transparenz, um die Helligkeit zu verringern (hexadezimaler Alpha-RGB-Wert A00000FF). Schließlich wird das Layout von der Bildschirmkante versetzt, indem es mit etwas Polsterung in ein anderes Layout eingefügt wird. Die vollständige Layoutdatei lautet somit:
quelle
Ich habe eine Möglichkeit, es sehr einfach zu machen, und ich möchte es teilen.
Wenn ich mi TextViews quadrieren möchte, füge ich sie einfach in ein LinearLayout ein. Ich lege die Hintergrundfarbe meines LinearLayout fest und füge meiner Textansicht einen Rand hinzu. Das Ergebnis ist genau so, als würden Sie die Textansicht quadrieren.
quelle
Konstantin Burov Antwort ändern, weil in meinem Fall nicht funktioniert:
compileSdkVersion 26 (Android 8.0), minSdkVersion 21 (Android 5.0), targetSdkVersion 26, Implementierung 'com.android.support:appcompat-v7:26.1.0', Gradle: 4.1
quelle
Sie können einen benutzerdefinierten Hintergrund für Ihre Textansicht erstellen. Schritte 1. Gehen Sie zu Ihrem Projekt. 2. Gehen Sie zu Ressourcen und klicken Sie mit der rechten Maustaste auf Zeichnen. 3. Klicken Sie auf Neu -> Zeichnungsressourcendatei. 4. Geben Sie Ihrer Datei einen Namen. 5. Fügen Sie den folgenden Code in die Datei ein
Für Ihre Textansicht, in der Sie sie als Hintergrund verwenden möchten,
android: background = "@ drawable / your_fileName"
quelle
Hier ist meine 'einfache' Hilfsklasse, die eine ImageView mit dem Rand zurückgibt. Legen Sie dies einfach in Ihrem utils-Ordner ab und nennen Sie es so:
Hier ist der Code.
quelle
selectionBorder
?Dies kann Ihnen helfen.
quelle
Erstellen Sie eine Rahmenansicht mit der Hintergrundfarbe als Rahmenfarbe und Größe Ihrer Textansicht. Legen Sie das Auffüllen der Rahmenansicht als Breite des Rahmens fest. Legen Sie die Hintergrundfarbe der Textansicht als die gewünschte Farbe für die Textansicht fest. Fügen Sie nun Ihre Textansicht in die Rahmenansicht ein.
quelle
Versuche dies:
quelle
Es gibt viele Möglichkeiten, einer Textansicht einen Rahmen hinzuzufügen. Am einfachsten ist es, ein benutzerdefiniertes Zeichenelement zu erstellen und es wie
android:background="@drawable/textview_bg"
für Ihre Textansicht festzulegen.Die textview_bg.xml wird unter Drawables angezeigt und kann ungefähr so aussehen. Sie können einen
solid
oder einengradient
Hintergrund haben (oder nichts, wenn nicht erforderlich),corners
um einen Eckenradiusstroke
hinzuzufügen und einen Rand hinzuzufügen.textview_bg.xml
quelle
Mit diesem Code können Sie ihn beliebig platzieren
quelle
setBackground in Ihrer XML-Textansicht,
Fügen Sie die Datei round_textview.xml zu Ihrem Zeichenverzeichnis hinzu.
Legen Sie die zeichnbare Datei im textView-Hintergrund fest.
quelle
Eigentlich ist es sehr einfach. Wenn Sie ein einfaches schwarzes Rechteck hinter der Textansicht wünschen, fügen Sie es einfach
android:background="@android:color/black"
in die TextView-Tags ein. So was:quelle