改变Android EditText的行颜色

11

我可以改变EditText的线条颜色吗?当它处于活动状态时,它有一些绿色调。Image

是否可能仅在活动时更改线条颜色,并且如何实现此操作...?


它是可能的,它嵌入在视图的背景图像中。 - njzk2
我该如何更改它? - KiKo
4
你可以使用这个网站http://android-holo-colors.com/来为你的EditText或其他安卓组件创建自定义主题。 - Rami
@Rami 不要依赖工具为你做神奇的事情。学习如何创建主题。 - Johann
9个回答

10

在您的themes.xml中添加以下行:

<item name="colorAccent">@color/black</item>

这将设置colorControlActivated的默认颜色,用于给小部件着色。


10

您需要为编辑文本设置背景源。

  1. 生成它:http://android-holo-colors.com/
  2. 然后,您可以将生成的可绘制对象作为背景应用于自定义EditText,例如:android:background="@drawable/my_theme_edit_text"。或者您可以在您的应用程序主题中设置该背景 - 您可以在该网站的.zip文件中找到示例。

那么也许你应该修改.png文件以去除那些角落。或者只是用你自己的替换它们? - Serhii Nadolynskyi

9

在这里:

editText.getBackground().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);

9

您可以将EditText的背景设置为一个矩形,并在左、右和上方减小内边距来实现此目的。

以下是用于设置聚焦和非聚焦EditText不同行颜色的XML示例,只需将其设置为EditText的背景即可。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="-2dp"
        android:left="-2dp"
        android:right="-2dp"
        android:bottom="2dp">
        <selector >
            <item android:state_enabled="true"
                android:state_focused="true">
                <shape
                    android:shape="rectangle">
                    <stroke
                        android:width="2dp"
                        android:color="#6A9A3A"/>
                </shape>
            </item>
            <item android:state_enabled="true">
                <shape
                    android:shape="rectangle">
                    <stroke
                        android:width="1dp"
                        android:color="#000000"/>
                </shape>
            </item>
        </selector>
    </item>
</layer-list>

6
<EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:background="@drawable/text"
            android:ems="10"
            android:textColorHint="#fefefe"
            android:hint="@string/text1"
            android:textColor="#fefefe"
            android:inputType="textEmailAddress"
            android:layout_marginTop="10dp"
/>

使用以下代码在您的res/drawable/text.xml中:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:top="24.0dp">
   <shape >
      <solid android:color="#fefefe"  />
   </shape>
   </item>
</layer-list>

5

您可以设置android:backgroundTint="@color/blue"来更改EditText底部线条的颜色。


1

我遇到了同样的问题,通过以下方式更改backgroundTint的颜色解决了它 -

android:backgroundTint="@color/light_color"


0
如果您正在使用TextInputLayouts进行EditText,我们应该更改以下属性。
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">@color/your color</item>
<item name="colorControlHighlight">@color/your color</item>

默认情况下,颜色为colorAccent。


0

您可以在API 21或更高版本上使用android:background = "@color/black"(这适用于Lollypop设备或更高版本),而对于低于此版本的设备,您应该将样式应用到EditText。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接