如何更改 TextInputLayout 中的 startIconDrawable 大小

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

似乎没有 XML 属性来更改 android 中的 startIconDrawable 大小。与文本相比,图标过大。 这是问题的屏幕截图:

这是我的 XML:

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.google.android.material.textfield.TextInputLayout
                style="@style/textInputStyle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Enter Paypal ID"
                android:padding="5dp"
                app:endIconMode="clear_text"
                app:startIconDrawable="@drawable/ic_paypal_logo">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/et_form_question_hint"
                    style="@style/textInputEditext"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textEmailAddress"
                    android:paddingHorizontal="@dimen/normalPadding" />

            </com.google.android.material.textfield.TextInputLayout>
        </LinearLayout>


如有想转载款式如下:

<style name="textInputEditext" parent="FirebaseUI.TextInputEditText">
        <item name="maxLine">1</item>
        <item name="android:textColor">@color/colorOnSurface</item>
    </style>

<style name="textInputStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name="android:layout_marginBottom">12dp</item>
        <item name="errorEnabled">true</item>
        <item name="endIconTint">@color/colorSurface</item>
        <item name="hintTextColor">@color/colorOnSurface</item>
        <item name="shapeAppearance">@style/Cut</item>
        <item name="boxStrokeColor">#AA000000</item>
        <item name="android:textColorHint">@color/colorOnSurface</item>
        <item name="android:textStyle">bold</item>
        <item name="counterTextColor">@color/colorOnSurface</item>
        <item name="android:textColor">@color/colorOnSurface</item>
    </style>

android android-textinputlayout
3个回答
1
投票

没有编辑可绘制大小的属性(直到现在)。

但是,如果您在代码中的许多地方使用该图标并且您不想弄乱原始图标的大小,您可以将它包装在另一个可绘制对象中并在那里更改项目大小。

举个例子:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:width="24dp" android:height="24dp"
        android:drawable="@drawable/ic_yourIconName" />
</layer-list>

0
投票

如果您减小 TextInputLayout 的大小并缩小图标,则有可能:

        <com.google.android.material.textfield.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            app:startIconDrawable="@drawable/your_icon"
            app:startIconScaleType="fitStart"
            app:startIconTint="@android:color/transparent"
            app:startIconTintMode="src_atop">

            <com.google.android.material.textfield.TextInputEditText
                android:inputType="textEmailAddress" />
        </com.google.android.material.textfield.TextInputLayout>

这里重要的是layout_height和startIconScaleType。


-1
投票

您可以更改图像的大小。 例如,大小为48x48dp的图标是24x24dp的两倍,看截图。 (它也适用于非矢量图像)

© www.soinside.com 2019 - 2024. All rights reserved.