2017-07-12 1 views
0

So gehe ich beim Hinzufügen eines Rahmens zu einer EditText. Wie kann ich einen Rahmen nur auf einer Seite eines EditText hinzufügen und die Farbe und Breite des Rahmens definieren?So fügen Sie einer bestimmten Seite einer Ansicht einen Rahmen hinzu

EditText editText = new EditText(this); 
editText.setText("Find"); 
editText.setWidth(555); 

GradientDrawable border = new GradientDrawable(); 
border.setColor(0xFFFFFFFF); // white background 
border.setStroke(1, 0xFF000000); // black border with full 
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { 
    editText.setBackgroundDrawable(border); 
} else { 
    editText.setBackground(border); 
} 

Vielen Dank im voraus.

+0

die einfachste ist, compound drawables zu verwenden, denke ich (TextView # setCompoundDrawable *) – pskink

+0

Könnten Sie bitte mit einer Illustration in einer Antwort @ pskink helfen? –

Antwort

1

Um Grenze auf der einen Seite zu bekommen, können Sie Ihre eigene ziehbar wie folgt erstellen:

<?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="#FF0000" /> 
    </shape> 
    </item> 
    <item android:right="5dp"> 
    <shape android:shape="rectangle"> 
     <solid android:color="#FFFF" /> 
    </shape> 
    </item> 
</layer-list> 

Und setzen Sie diesen ziehbar als Hintergrund für Ihre EditText.

+0

Vielen Dank für die Antwort @Casablancais. Was wäre die Syntax, wenn ich für die oberen und rechten Ränder eine andere Farbe und Breite einstellen möchte: Das heißt, jeder Rand hat eine andere Breite und Farbe? Wenn du könntest, könntest du es bitte als ein Update in deiner Antwort hinzufügen? –

+0

@ program-me-rev Ich denke, es ist nicht möglich mit XML Drawable :( – Casablancais

0

Wenn Sie nur eine Seite von EditText umranden möchten, sollten Sie das Tag View in Ihrer Layoutdatei verwenden, um eine einfache Linie zu zeichnen und sie in der Nähe Ihres EditText zu platzieren und die Hintergrundfarbe zu verwenden. Um diese horizontale Linie Gebrauch zu machen:

<View 
    android:layout_width="match_parent" 
    android:background="@color/colorPrimary" 
    android:layout_height="2dp" /> 
Verwandte Themen