2017-01-06 3 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> 

Dies macht die Textbearbeitung unterstreichen schwarz, aber ich möchte es ein transparentes weiß sein. Wenn Sie einen benutzerdefinierten Stil mit XML festlegen, wird dieser ebenfalls auf Schwarz gesetzt. Wie kann ich die Unterstreichung mit Java transparent weiß machen?Wie man edittext Unterstreichung transparentes Weiß programmgesteuert macht

Antwort

1

Sie können smth wie diese versuchen: schafft ziehbar xml für ex 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> 

dann in Code:

editText.setBackgroundResource(R.drawable.edittext_lined); 
+0

Es funktioniert, aber jetzt muss ich herausfinden, wie Sie die Strichbreiten dynamisch ändern und – user7346168

+0

überprüfen GradientDrawable http://StackOverflow.com/a/20110706/5599807 – user5599807

0

Gerade EditText Hintergrundfarbe weiß/transparent eingestellt im XML-Layout/im Code.

Verwandte Themen