2012-07-14 36 views
10

...変更のEditText境界線の色

これは私のEditTextビューです:先行

<EditText 
    android: 
    android:id="@+id/codeEditText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/btnEqual" 
    android:layout_marginTop="20dp" 
    android:ems="10" 
    android:gravity="top|left" 
    android:inputType="textMultiLine|textNoSuggestions" 
    android:scrollbars="vertical" 
    android:singleLine="false" > 

ありがとう。

答えて

17

独自のNinePatchイメージを作成/修正してデフォルトのイメージを置き換え、それをEditTextのバックグラウンドとして使用する必要があります。プラットフォームのSDKフォルダ、res/drawableを見ると、EditTextフォーカス状態のNinePatchイメージが見つかります。それをすべて変更したいのであれば、Photoshopなどのイメージ編集ソフトウェアを使って、オレンジ色を好みの色に変更するだけです。次に、あなたの描画可能なフォルダにそれを保存し、新しいStateListDrawableを構築し、例えば以下のようなもの:

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <item 
     android:state_pressed="true" 
     android:drawable="@android:drawable/edittext_pressed" 
     /> <!-- pressed -->  
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/edittext_focused_blue" 
     /> <!-- focused -->  
    <item 
     android:drawable="@android:drawable/edittext_normal" 
     /> <!-- default --> 
</selector> 

私はぶっきらぼうのEditTextのデフォルトNinePatchesのための実際の名前を知っているので、それらの必要に応じてを置き換えるものではありませんここで重要なのは、変更していないものに対して@android:drawableの画像を使用するだけです(またはプロジェクトのドロワブルフォルダにコピーすることもできます)。そして、あなたの変更したドロワブルをフォーカスした状態で使用します。

あなたがそのようにように、あなたのTextViewの背景として、このStateListDrawableを設定することができますいくつかのOSのバージョンで

<TextView 
    android:background="@drawable/edittext_modified_states" 

、あなたも取得するアプリケーション描画可能なフォルダに通常の無修正の状態の写真をコピーする必要がある場合がありますこの作品。したがって、アプリケーションの描画可能フォルダには、フォーカス状態の変更された写真と、変更されていないオリジナルの他の状態の写真もあります。

+0

+ 1、** edittxview.setErrorための任意の状態( "エラー")があります! setError検証アラートが発生したときに境界線の色を変更したいだけです! –

+0

これは私が探しているものです[edit-background-of-edittexts-error-message](http://stackoverflow.com/questions/14127710/change-background-of-edittexts-error-message) –

0

これを行うには、onDraw関数をオーバーライドする必要があります。そして、あなたは1行でそれを行うことができます。 スライド66のthis presentationの良い例があります。

+1

edittextの枠線の上に矩形を描画します。 OPはフォーカスしている色を変更したい。 –

7

素晴らしいウィジェットジェネレータがあなたのためにすべての仕事をすることができます。

あなたは自分の色とされます(のEditText例えば)あなたが描画可能ディレクトリ内のxmlファイルを取得する、あなたのウィジェットの背景として、このXMLを設定し、完了する必要がありたいウィジェットを選択する必要があります! state_pressed = "真"(アンドロイド:state_seterror = "真")アンドロイドのような**;

http://android-holo-colors.com/

関連する問題