TextInputLayout endIconDrawable 显示为灰色而不是所需的图像。
只有此图像呈现为灰色。我尝试将图像设置为 png,并将 svg 导入为矢量资源。
两者都没有按预期工作。
我尝试在 TextInputLayout 中设置图像:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/chatFragment_TIL1"
android:layout_width="match_parent"
android:layout_height="50dp"
app:boxBackgroundMode="outline"
android:layout_toRightOf="@id/chatFragment_imageView2"
android:layout_marginStart="15dp"
app:boxCornerRadiusTopStart="@dimen/TIL_CornerRadius2"
app:boxCornerRadiusTopEnd="@dimen/TIL_CornerRadius2"
app:boxCornerRadiusBottomStart="@dimen/TIL_CornerRadius2"
app:boxCornerRadiusBottomEnd="@dimen/TIL_CornerRadius2"
app:endIconMode="custom"
app:endIconDrawable="@drawable/ic_message_send_icon"
style="@style/TextInputLayoutStyle"
app:hintEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/chatFragment_TIET1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:fontFamily="@font/inter_regular"
android:textColor="@color/black_text_dark"
android:hint="@string/chatFragment_Text1"
android:textSize="@dimen/normalText1"
/>
</com.google.android.material.textfield.TextInputLayout>
我也在文本输入更改上更改它,如下所示:
if(s.length() > 0){
inputMessageTIL.setEndIconDrawable(R.drawable.ic_message_send_icon);
} else {
inputMessageTIL.setEndIconDrawable(R.drawable.ic_mic);
}
这是 Vectordrawable 代码:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="32"
android:viewportHeight="32">
<path
android:pathData="M16,16m-16,0a16,16 0,1 1,32 0a16,16 0,1 1,-32 0"
android:fillColor="#6B4EFF"/>
<path
android:pathData="M22.5,9.5L14.25,17.75M22.5,9.5L17.25,24.5L14.25,17.75M22.5,9.5L7.5,14.75L14.25,17.75"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>
请帮助我。我无法使用其他图像。非常感谢!
使用 endIconTint 设置颜色
app:endIconTint="@color/redText"
app:endIconTintMode="multiply"
以防万一您需要在代码中设置每个案例超过 1 个可绘制对象。我使用 setEndIconTintMode(PorterDuff.Mode.DST) 解决了它:
myTextInputLayout.endIconDrawable = ResourcesCompat.getDrawable(resources, R.drawable.my_drawable, context.theme)
myTextInputLayout.setEndIconTintMode(PorterDuff.Mode.DST)