Android TextInputLayout endIconDrawable 显示为灰色而不是图像

问题描述 投票:0回答:2

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>

这是我使用的png格式的图像

这就是我现在得到的..灰色圆圈图像..

请帮助我。我无法使用其他图像。非常感谢!

android android-textinputlayout android-vectordrawable
2个回答
5
投票

使用 endIconTint 设置颜色

app:endIconTint="@color/redText"
app:endIconTintMode="multiply"

0
投票

以防万一您需要在代码中设置每个案例超过 1 个可绘制对象。我使用 setEndIconTintMode(PorterDuff.Mode.DST) 解决了它:

myTextInputLayout.endIconDrawable = ResourcesCompat.getDrawable(resources, R.drawable.my_drawable, context.theme)
myTextInputLayout.setEndIconTintMode(PorterDuff.Mode.DST)
© www.soinside.com 2019 - 2024. All rights reserved.