Ich kenne setableRight in XML. aber ich musste es programmgesteuert machen, weil es sich je nach Bedingung ändert.
Sie können die folgende Funktion verwenden:
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
Die Reihenfolge der Parameter, die der Zeichenposition entsprechen, ist: links, oben, rechts, unten
Weitere 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 das Zeichenelement 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);
Dann können Sie diesem Zeichnungsobjekt 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 (sofern vorhanden) links, oberhalb, rechts neben und unterhalb des Textes angezeigt werden. Verwenden Sie 0, wenn Sie dort kein Drawable haben möchten. Die Grenzen der Drawables werden auf ihre intrinsischen Grenzen gesetzt.
Sie können die in der Funktion setCompoundDrawablesWithIntrinsicBounds () eingebaute editText-Ansicht (hier ist 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);
Um links und rechts gleichzeitig zu wechseln, verwende ich diese einzelne Zeile.
download.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_lock_open_white_24dp, 0, R.drawable.ic_lock_open_white_24dp, 0);
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);
}
});
Verstecke das Zeichnen mit diesem
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);
Wenn Android-Grafiken gezeichnet werden müssen, funktioniert dies
Drawable dw = getApplicationContext().getResources().getDrawable(R.drawable.edit);
Button start = (Button)findViewById(R.id.buttonStart);
start.setCompoundDrawablesWithIntrinsicBounds(dw, null, null, null);