2017-01-06 9 views
1
View.OnFocusChangeListener focusListener = new View.OnFocusChangeListener() { 
     public void onFocusChange(View v, boolean hasFocus) { 
      if (hasFocus){ 
       editText.getBackground().setColorFilter(ContextCompat.getColor(getActivity().getApplicationContext(),R.color.ed_background), PorterDuff.Mode.SRC_ATOP); 
      } else { 
       int color = Color.parseColor("#FFFFFF"); 
       editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_ATOP); 
      } 
     } 
    }; 

<color name="ed_background">#33FFFFFF</color> 

これにより、編集テキストの下線が黒くなりますが、透明な白にします。 xmlでカスタムスタイルを設定すると、黒に設定されます。下線をJavaで透明な白にするにはどうすればいいですか?edittextに透明な白をプログラムでアンダーラインにする方法

答えて

1

あなたはこのようになめらかを試すことができます: は元edittext_lined.xmlコードで、その後

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:top="-2dp" android:right="-2dp" android:left="-2dp"> 
    <shape> 
     <solid android:color="@android:color/transparent" /> 
     <stroke android:color="@color/ed_background" android:width="1dp"/> 
    </shape> 
</item> 

ために描画可能なXMLを作成します。

だけ透明/白へのEditText背景色を設定し
editText.setBackgroundResource(R.drawable.edittext_lined); 
+0

これは機能しますが、ストロークの幅を動的に変更する方法を理解する必要があります。 – user7346168

+0

check GradientDrawable http://stackoverflow.com/a/20110706/5599807 – user5599807

0

XMLレイアウト/コード

関連する問題