TextInputLayout 以编程方式设置 startIconDrawable 的颜色

TextInputLayout set color of startIconDrawable programmaticaly

我想以编程方式为我的 TextInputLayout 设置开始图标,但我遇到了他的颜色问题。当我设置可绘制时,它的颜色变成灰色,但它的原始颜色是橙色。我知道我可以通过在 xml 中使用 startIconTint 参数来更改它的颜色,但我想以编程方式更改它的颜色。谁能帮我解决这个问题。

只需使用方法 setStartIconDrawable and setStartIconTintList:

textInputLayout.setStartIconDrawable(...);
textInputLayout.setStartIconTintList(ContextCompat.getColorStateList(this,R.color.text_input_selector));

您可以使用颜色或颜色选择器。
类似于:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="?attr/colorPrimary" android:state_activated="true"/>
  <item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
  <item android:alpha="0.54" android:color="?attr/colorOnSurface"/>
</selector>