我正在开发一个具有多种形式的应用程序,但我想要一些效果。我想要做的是改变放置在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" />
答案 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
类中的setTintMode
,DrawableCompat
方法以编程方式为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);