Wie entferne man den Rand nur von einer Seite des Elements?

8

Ich habe:

%Vor%

Ich möchte diesen Rahmen vom unteren Rand (zum Beispiel) des Elements entfernen. Ist es möglich? (Eclipse schlägt mir nur vor: color, width, dashWidth und dashGap).

    
anony_root 13.05.2012, 10:32
quelle

3 Antworten

23

Soweit ich es verstehe, gibt es keinen einfachen Weg, dies zu tun. Wenn Sie aber die layer-Liste mit einem Element verwenden, das den Rahmen hat und dann nicht mit einem Versatz von alle Seiten, für die Sie einen Rahmen möchten gleich der Rahmenbreite, würden Sie erreiche das.

Lassen Sie mich das xml für Sie machen, das die randlose Unterseite darstellt.

%Vor%

Wie Sie sehen können, sage ich dem zweiten Punkt, dass der erste um zwei Punkte auf allen Seiten mit Ausnahme der unteren (daher das randlose Ergebnis unten) eingefügt werden soll, gehen Sie:

Also im Grunde genommen ist das keine Grenze per se, es ist die Form von unten (obwohl Sie einen Rahmen hinzufügen könnten, wenn Sie gestrichelt oder punktiert oder was auch immer brauchen), der von einem zweiten Gegenstand mit dem Körper des Knopfes bedeckt wird . Alles im selben Zeichenfeld:)

Dies kann auf jeden Rahmen angewendet werden, den Sie entfernen möchten, indem Sie die Werte ändern, in die das Element eingefügt wird. Wenn ich beispielsweise right im Element Körper in bottom ändere, würde der fehlende Rahmen das Recht haben eins da es das ohne den Einsatz

ist     
Juan Cortés 13.05.2012, 10:47
quelle
10

Dies ist ein bisschen ein Hack , aber es ist möglich, einen oder mehrere Rahmen mit einem inset zu entfernen, das mit negativen Werten gezeichnet werden kann. Wickeln Sie die Form in eine inset und wenden Sie eine negative android:insetTop , android:insetBottom , android:insetLeft oder android:insetRight mit einem Abs-Wert an, der der Strichbreite entspricht.

Um beispielsweise den unteren Rand von einem Rechteck mit einem 4dp -Zug zu entfernen, verwenden Sie einen android:insetBottom -Wert von -4dp .

%Vor%

Dies scheint gut zu funktionieren, solange die Ecken der Form einen Radius haben, der kleiner als die Strichbreite ist. Andernfalls verwenden Sie den größeren der beiden Werte (den Radius), wenn Sie den Einsatz anwenden, um die abgerundeten Teile der angrenzenden Rahmen vollständig zu verbergen.

    
trooper 03.01.2015 21:21
quelle
0

Es ist ein XML-Trick. Zuerst müssen Sie die Ebene mit einer bestimmten Farbe (Linienfarbe) füllen. Dann müssen Sie es mit einer anderen Farbe (Hintergrundfarbe) füllen, während Sie die Zeichnung ein wenig von der Seite schieben, die Sie die Linie zeichnen möchten. Hier ist mein Code:

%Vor%

Ссылка

Hier, wie es aussieht:

    
Farid Alkorashy 02.02.2018 16:08
quelle