2017-07-12 12 views
0

これは、EditTextにボーダーを追加する方法です。 EditTextの片側だけに境界線を追加し、境界線の色と幅を定義するにはどうすればよいですか?ビューの特定の側にボーダーを追加する方法

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

最も簡単なのは複合型の描画可能なものを使用することです(TextView#setCompoundDrawable *) – pskink

+0

@pskinkの回答でイラストを助けてください。 –

答えて

1

、あなたはこのような独自の描画可能な作成することができます。

<?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> 

をそして、あなたのEditTextの背景として、この描画可能に設定してください。

+0

@Casablancaisという回答ありがとうございます。右と左の境界線に対して異なる色と幅を設定したい場合は、構文はどのようになりますか?つまり、各境界線の幅と色が異なりますか?可能であれば、答えの更新として追加してください。 –

+0

@ program-me-rev私はそれがXML Drawableでは不可能だと思います。 – Casablancais

0

EditTextの片面だけを追加する場合は、レイアウトファイルでViewタグを使用して、単純な線を描き、EditTextの近くに配置し、背景のプロパティを使用して線の色を設定する必要があります。 この水平線の使用を描くには:1つの側の境界線を取得するには

<View 
    android:layout_width="match_parent" 
    android:background="@color/colorPrimary" 
    android:layout_height="2dp" /> 
関連する問題