This example demonstrate about How to set ImageView in edittext while entering text.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:layout_marginTop="30dp" tools:context=".MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:paddingStart="5dp" android:background="@drawable/rounded_edittext" android:drawableStart="@android:drawable/ic_menu_search" android:paddingLeft="5dp" /> </LinearLayout>
In the above code, we have taken edit text and added background as background.xml.
Step 3 − Add the following code to drawable/ background.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="https://schemas.android.com/apk/res/android" > <solid android:color="#FFFFFF" /> <stroke android:width="1dp" android:color="#2f6699" /> <corners android:radius="10dp" /> </shape>
Step 4 − Add the following code to java/MainActivity.xml
package com.example.myapplication; import android.annotation.TargetApi; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.MainThread; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { @TargetApi(Build.VERSION_CODES.LOLLIPOP) @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText editText=findViewById(R.id.edit_query); final Drawable image = MainActivity.this.getResources().getDrawable( R.drawable.sir ); image.setBounds(0, 0, 40, 40); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { editText.setCompoundDrawables(null,null,null,null); } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(count>2 && count !=0) editText.setCompoundDrawables(image,null,null,null); } @Override public void afterTextChanged(Editable s) { } }); } }
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen –
Now enter any 3 or more than 3 letters, it will show the image as shown below –