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

标签 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" />

最佳答案

使用 DrawableCompat 类中的 setTintsetTintMode 方法为 drawabletint以编程方式。

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 TextFocus 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/

相关文章:

android - 检测用户何时将数据输入 edittext 立即显示答案

android - 我的 android 手机停止了我试图从 android studio 测试的应用程序

android - EditText - 如何在 android edittext 中设置默认文本

java - 如何实现简单的edittext语法高亮方法?

javascript - 如何在 WebView 中添加 JavaScript 函数并稍后在提交 reCAPTCHA 时从 HTML 中调用它

java - 如何使按钮在单击时重新出现在不同的位置?

android - 管理多个 SharedPreference 文件

java - 保存和获取具有共享首选项的微调项目

安卓谷歌地图。在 Locationchange 上计算移动距离并在 textview 中显示。

android - 使用多个白名单变量验证 EditText