it-swarm.com.de

Wie kann ich drawableRight unter Android Edittext programmgesteuert einstellen?

Ich kenne setableRight in XML. aber ich musste es programmgesteuert machen, weil es sich je nach Bedingung ändert.

60
Sanket Kachhela

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

187
Lawrence Choy

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");
6

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);
4
Riser

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.

2
misbahm3
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.

2

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);
1
Paul Mathew

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);
0
abir99
        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);
0
Keshav Gera

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);
0
MarGin