学而实习之 不亦乐乎

Android:EditText 自定义样式

2021-11-13 21:19:54

Android 中 EditText 自带的样式比较单调,有时需要使用自定义的样式。

一、使用自定义背景

1.自定义EditText 圆角矩形背景

自定义圆角矩形custom_edittext_background.xml

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

    <!-- 圆角-->
    <corners android:radius="5dp" />
    <!--描边-->
    <stroke
        android:width="1dp"
        android:color="@android:color/holo_blue_light" />

</shape>

2.EditText 引用自定义背景

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:background="@drawable/custom_edittext_background"
    android:gravity="center"
    android:hint="自定义EditText"
    android:padding="8dp"
    android:textSize="16sp" />

二、修改光标颜色

在drawable中新建一个xml,内容如下

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <size android:width="2dp" />
    <solid android:color="@color/main_blue" />
 
    <!--<corners android:radius="3dip"/>-->
    <stroke
            android:width="1dip"
            android:color="@color/main_blue" /> 
</shape>

使用edittext的时候增加如下属性设置

android:textCursorDrawable="@drawable/edit_custom_style"
原理就是,android支持自定义样式设置,我们自建了样式,设置textCursorDrawable,为我们的样式就好了。

三、设置底边颜色

在styles.xml中新建一个样式

<style name="MyEditText" parent="Theme.AppCompat.Light">
        <item name="colorControlNormal">@color/main_gray</item>
        <item name="colorControlActivated">@color/main_blue</item>
</style>

然后在edittext中设置主题

android:theme="@style/MyEditText"