如何更改默认EditText的样式

Rah*_*hul 31 android android-edittext

我正在使用这样的代码在我的xml文件中创建一个三个EditText.

<EditText
    android:id="@+id/name_edit_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/profile_image_view_layout"
    android:layout_centerHorizontal="true"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="20dp"
    android:ems="15"
    android:hint="@string/name_field"
    android:inputType="text" />
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,它在我的设备中看起来像这样.

在此输入图像描述

但我想看看没有使用任何背景图像.

在此输入图像描述

那怎么办呢?任何想法或建议都会有所帮助.

Tar*_*ngh 37

创建像edit_text_design.xml这样的xml文件并将其保存到drawable文件夹中

我根据我的选择给出了颜色代码,请根据您的选择更改颜色代码!

 <?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <solid android:color="#c2c2c2" />
    </shape>
</item>

<!-- main color -->
<item
    android:bottom="1.5dp"
    android:left="1.5dp"
    android:right="1.5dp">
    <shape>
        <solid android:color="#000" />
    </shape>
</item>

<!-- draw another block to cut-off the left and right bars -->
<item android:bottom="5.0dp">
    <shape>
        <solid android:color="#000" />
    </shape>
</item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

您的编辑文本应包含它作为背景:

android:background ="@ drawable/edit_text_design"添加到你的所有EditText中

现在你的上面的EditText应该是这样的:

      <EditText
        android:id="@+id/name_edit_text"
        android:background="@drawable/edit_text_design"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/profile_image_view_layout"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:ems="15"
        android:hint="@string/name_field"
        android:inputType="text" />
Run Code Online (Sandbox Code Playgroud)


Ali*_*Ali 27

你有几个选择.

  1. 使用Android资产工作室 Android Holo颜色生成器生成您需要添加到您的应用程序的资源,样式和主题,以获得所有设备的全息外观.

  2. 到处使用holo图书馆.

  3. 将PNG用于全息文本字段并自行将其设置为背景图像.您可以从Android资产工作室全息颜色生成器获取图像.你必须制作一个drawable并定义正常,选定和禁用状态.

更新2016-01-07

这个答案现在已经过时了.Android现在可以直接调整API和控件主题的能力.关于如何设置样式或主题任何元素的一个很好的参考是一个名为materialdoc的站点.


Jos*_*osh 10

我在10分钟前解决了同样的问题,所以我会给你一个简短的有效修复:把它放在应用程序标签或你的清单中:

 android:theme="@android:style/Theme.Holo"
Run Code Online (Sandbox Code Playgroud)

还可以在布局的图形视图中将XML布局的主题设置为Holo.

如果您需要更改更复杂的主题内容,库将非常有用,但这个小修补程序将起作用,因此您可以继续使用您的应用程序.


小智 5

我使用下面的代码.检查它是否有帮助.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#00f" />
            <padding android:bottom="2dp" />
        </shape>
    </item>
    <item android:bottom="10dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />

            <padding
                android:left="2dp"
                android:right="2dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

  • 问题:有人想拥有那种风格但不想要图像.此解决方案:获取您想要的一盒颜色,然后用不同的颜色框隐藏它的一部分(在这种情况下必须与背景颜色相同,透明度在这里不起作用)以获得您需要的形状.为什么我这样做,它让我可以根据需要更改文本框颜色,对于图像,我需要创建所有这些彩色图像. (3认同)

Sam*_*RAK 5

edittext_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/edittext_pressed" android:state_pressed="true" /> <!-- pressed -->
    <item android:drawable="@drawable/edittext_disable" android:state_enabled="false" /> <!-- focused -->
    <item android:drawable="@drawable/edittext_default" /> <!-- default -->
</selector>
Run Code Online (Sandbox Code Playgroud)

edittext_default.xml

       <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#BBDEFB" />
            <padding android:bottom="2dp" />
        </shape>
    </item>
    <item android:bottom="5dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />

            <padding
                android:left="0dp"
                android:right="0dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

edittext_pressed.xml

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#00f" />
            <padding android:bottom="2dp" />
        </shape>
    </item>
    <item android:bottom="5dp">
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />

            <padding
                android:left="0dp"
                android:right="0dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#fff" />
        </shape>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

edittext_disable.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="#aaaaaa" />
                <padding android:bottom="2dp" />
            </shape>
        </item>
        <item android:bottom="5dp">
            <shape android:shape="rectangle" >
                <solid android:color="#fff" />

                <padding
                    android:left="0dp"
                    android:right="0dp" />
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="#fff" />
            </shape>
        </item>

    </layer-list>
Run Code Online (Sandbox Code Playgroud)

它在没有九补丁 Api 10+ 的情况下工作正常 在此处输入图片说明