it-swarm.com.de

Wie kann ich ein Bild in EditText hinzufügen?

Ich möchte ein Bild dynamisch in EditText hinzufügen. Ist es möglich? 

wenn jemand weiß, geben Sie bitte Beispielcode dafür.

45
sivaraj

Wenn so etwas:

EditCheck

ist es das, worüber Sie sprechen, dann müssen Sie entweder die Drawable{Right | Left | Top | Bottom} -Eigenschaft in der XML-Datei festlegen oder den entsprechenden Java-Befehl aufrufen.

EditText text = (EditText)findViewById(R.id.text);
text.setCompoundDrawables(null, null, getResources().getDrawable(R.drawable.check_box), null);
63
CaseyB

enter image description here

Mit dem Rahmenlayout ist dies sehr leicht zu überwinden. Ein weiterer Vorteil besteht darin, dass Sie Klickereignisse für Schaltflächen angeben können. Wenn Sie mit setCompoundDrawables Symbole festlegen, können Sie die Klickereignisse nicht geben und Suchsymbole. 

<FrameLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content" >

            <EditText
                Android:id="@+id/search"
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:background="@drawable/search_bar"
                Android:drawablePadding="8dp"
                Android:paddingLeft="30dp"
                Android:paddingRight="10dp"
                Android:inputType="text"
                Android:maxLines="1">

                <requestFocus />
            </EditText>

            <Button
                Android:id="@+id/searchBtn"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_gravity="left|center_vertical"
                Android:layout_margin="10dp"
                Android:background="@drawable/icon_magnify" />

            <Button
                Android:id="@+id/delete"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_gravity="right|center_vertical"
                Android:layout_margin="8dp"
                Android:background="@drawable/icon_remove" />
        </FrameLayout>
60
Ramesh Akula

mit Android:drawableRight oder Android:drawableLeft (abhängig davon, wo Sie das Bild ausrichten möchten)

<EditText 
        Android:layout_width="wrap_content"
        Android:layout_height="fill_parent"
        Android:id="@+id/searchedTxt"
        Android:width="200dp"
        Android:layout_alignParentRight="true"
        Android:drawableRight="@Android:drawable/ic_menu_search"
        Android:drawablePadding="@dimen/dimen_10dp"
        />  
43
Ging3r

sie können dies auch versuchen 

    SpannableString ss = new SpannableString("abc\n");
    Drawable d = img.getDrawable();
    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
    ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
    ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    editT.setText(ss);
26
Buda Gavril

Test Image

Sie können setCompoundDrawablesWithIntrinsicBounds verwenden (int left, int top, int right, int bottom) .

    EditText text = (EditText) findViewById(R.id.edtTest);
    text.setText("Test");
    text.setCompoundDrawablesWithIntrinsicBounds(null, null,
                       getResources().getDrawable(R.drawable.myDrawable, null), null);
16

Sie können über Android:background="@drawable/img" ein Bild zu Ihrer EditText hinzufügen.

Wenn Sie den Stil mit neun oder anderen Patches ändern möchten, jedoch ein kleines Bild links von Ihrer EditText hinzufügen möchten, sollten Sie Android:drawableRight="@drawable/icon" verwenden.

7
sami boussacsou

Sie können verwenden: 

editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.pic_name, 0); 

wie hier vorgeschlagen:
Beim Aufruf von setCompoundDrawables () wird das zusammengesetzte Drawable nicht angezeigt

1
Amitay Feder

erweitern Sie die edittext-Klasse und geben Sie Code so ein, wie Sie möchten

public void setImage(String imageResource) {
    int position = Selection.getSelectionStart(MyEditText.this
            .getText());

    Spanned e = Html.fromHtml("<img src=\"" + imageResource + "\">",
            imageGetter, null);

    MyEditText.this.getText().insert(position, e);
}
1
Hammad Hasan

Sie können dies versuchen, wenn Sie in der Adapterklasse sind

    holder.myEditText.setCompoundDrawablesWithIntrinsicBounds(null, null,
            _context.getResources().getDrawable(R.drawable.ic_launcher),
            null);

und Sie können dies versuchen, wenn Sie sich in der Aktivitätsklasse befinden

    myEditText.setCompoundDrawablesWithIntrinsicBounds(null, null,
            getResources().getDrawable(R.drawable.ic_launcher),
            null);
0
Hammad Hasan

Erstellen Sie eine Instanz der EditText

EditText editText = (EditText) findViewById(R.id.EditText1);

Dann erstellen Sie eine gezeichnete Instanz des Bildes

Drawable image = getResources().getDrawable(R.drawable.ic_warning); // API 21 and below.

OR

Drawable image = getDrawable(R.drawable.ic_warning); // API 22 and above.

Stellen Sie dann das Bild ein, indem Sie setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom); aufrufen.

editText.setCompoundDrawablesWithIntrinsicBounds(null, null, image, null); 

Die obige Zeile setzt das Bild auf der rechten Seite der EditText.

0
Ajay Sivan