如何更改放置在edittext中的图标的颜色?

时间:2016-05-25 11:13:47

标签: android android-layout android-edittext android-xml

我正在开发一个具有多种形式的应用程序,但我想要一些效果。我想要做的是改变放置在edit text内的图标的颜色。

<EditText
    android:id="@+id/marks"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/button1"
    android:layout_alignParentTop="true"
    android:layout_marginTop="10dp"
    android:drawableRight="@drawable/ic_border"
    android:hint="Total Marks"
    android:inputType="number"
    android:textColor="#fff" />

6 个答案:

答案 0 :(得分:1)

如果你想改变颜色,你可以使用它
首先改变可绘制的颜色。

Drawable mDrawable = context.getResources().getDrawable(R.drawable.yourdrawable); 
mDrawable.setColorFilter(new 
PorterDuffColorFilter(0xffff00,PorterDuff.Mode.MULTIPLY));

现在将其设置为EditText

edtText.setCompoundDrawablesWithIntrinsicBounds(mDrawable, 0, 0, 0);

答案 1 :(得分:1)

  

使用setTint类中的setTintModeDrawableCompat方法以编程方式为tint设置drawable

Drawable drawable = R.drawable.image; //Your drawable image
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable, Color.GREEN); // Set whatever color you want
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);
  

drawable设置editText后:

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

编辑1:

  

Drawable行中进行更改,如下所示。

Drawable drawable = getResources().getDrawable(R.drawable.ic_done);

编辑2

  

使用Focus Change Listener的{​​{1}}。

Edit Text

答案 2 :(得分:0)

试试这个lib:https://github.com/jrvansuita/IconHandler

通话:

Icon.on(yourEditText).icon(R.mipmap.your_icon).position(Gravity.LEFT).color(R.color.youColor).put();

答案 3 :(得分:0)

   <androidx.appcompat.widget.AppCompatEditText
                android:layout_width="0dp"
                android:drawableStart="@drawable/ic_language"
                android:drawableTint="@color/gray"
                android:layout_height="wrap_content"/>

您是否尝试过“ android:drawableTint”?

答案 4 :(得分:0)

尝试一下:

Drawable d1 = getResources().getDrawable(R.drawable.ic_icon);
Drawable drawable = DrawableCompat.wrap(d1);

DrawableCompat.setTint(drawable, ContextCompat.getColor(getContext(), R.color.color_custom));

editText.setCompoundDrawables(null, null, drawable, null);

答案 5 :(得分:-1)

试试这个..

EditText editText = (EditText) v.findViewById(R.id.myEditText);
Drawable d = mFriendsFeedButton.getCompoundDrawables()[0];

Drawable wrappedDrawable = DrawableCompat.wrap(d);
DrawableCompat.setTint(wrappedDrawable, Color.RED);

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