Ich weiß, wie man drawableRight in XML setzt. aber ich musste es programmgesteuert tun, weil es sich unter bestimmten Bedingungen ändert.
Ich weiß, wie man drawableRight in XML setzt. aber ich musste es programmgesteuert tun, weil es sich unter bestimmten Bedingungen ändert.
Antworten:
Sie können die folgende Funktion verwenden:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
oder (wenn Sie das Drawable selbst anstelle seiner ID übergeben möchten)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
Die Reihenfolge der Parameter, die der zeichnbaren Position entsprechen, lautet: links, oben, rechts, unten
Weitere Informationen finden Sie hier
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
Sie können die Zeichenpolsterung auch programmgesteuert einstellen:
myEdit.setCompoundDrawablePadding("Padding value");
Versuchen Sie es wie folgt:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Bearbeiten:
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
Versuchen:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
Anschließend können Sie diesem bestimmten Zeichenelement einen Touch-Listener hinzufügen.
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
erklärt hier
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Legt fest, dass die Drawables (falls vorhanden) links, über, rechts und unter dem Text angezeigt werden. Verwenden Sie 0, wenn Sie dort kein Drawable möchten. Die Grenzen der Drawables werden auf ihre inneren Grenzen gesetzt.
Sie können Ihre in der Funktion setCompoundDrawablesWithIntrinsicBounds () integrierte editText-Ansicht (hier txview) verwenden, um das zu tun, wonach Sie suchen
In meinem Code habe ich es so benutzt. txview.setCompoundDrawablesWithIntrinsicBounds (0,0, R.drawable.ic_arrow_drop_up, 0);
txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom);
et_feedback.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,R.mipmap.feedback_new, 0, 0);
et_feedback.setTextColor(Color.BLACK);
}
});
Mit dieser Option Drawable ausblenden
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);