我正在开发一个具有多种形式的应用程序,但我想要对它产生一些影响。我想要做的是更改放置在 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" />
最佳答案
使用 DrawableCompat
类中的 setTint
、setTintMode
方法为 drawable设置
以编程方式。tint
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);
在为 editText
设置了 drawable
之后:
editText.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
编辑 1:
如下更改 Drawable
行。
Drawable drawable = getResources().getDrawable(R.drawable.ic_done);
编辑 2
使用 Edit Text
的 Focus Change Listener
。
edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
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);
editText.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
}else {
}
}
});
关于android - 如何更改放置在 edittext 中的图标的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37435429/