📌  相关文章
📜  android中不同样式的edittext (1)

📅  最后修改于: 2023-12-03 15:13:22.445000             🧑  作者: Mango

Android中不同样式的EditText

在 Android 开发中,EditText 是常用的控件之一,通常用于用户输入信息。在实际开发中,我们可能需要对EditText进行不同的样式设置,以满足设计需求。本文将介绍一些常见的样式设置。

1. 基本样式设置
1.1 修改文字颜色

可以通过android:textColor属性来修改EditText文字颜色:

<EditText
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/black" />
1.2 修改文字大小

可以通过android:textSize属性来修改EditText文字大小:

<EditText
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18sp" />
1.3 修改输入框颜色

可以通过android:background属性来修改EditText输入框颜色:

<EditText
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_edittext_bg" />

其中shape_edittext_bg为一个定义好的样式资源文件,可用于设置EditText的背景颜色、圆角等。示例代码如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="2dp" />
    <solid android:color="@color/white" />
    <stroke
        android:width="1dp"
        android:color="@color/grey" />
</shape>
2. 进阶样式设置
2.1 自定义下划线样式

我们可以通过自定义控件的方式,实现自定义下划线的样式。示例代码如下:

<com.example.customview.EditTextWithUnderline
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/black" />

其中EditTextWithUnderline是一个自定义的View,实现了下划线样式的绘制。示例代码如下:

public class EditTextWithUnderline extends AppCompatEditText {

    private Paint mPaint;

    public EditTextWithUnderline(Context context) {
        super(context);
        init();
    }

    public EditTextWithUnderline(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public EditTextWithUnderline(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(getResources().getColor(R.color.grey));
        mPaint.setStrokeWidth(1);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawLine(0, getHeight() - 2, getWidth(), getHeight() - 2, mPaint);
    }
}
2.2 清除按钮

在输入框后面添加一个清除按钮,用户点击清除按钮可以清空输入框内容。示例代码如下:

<androidx.appcompat.widget.AppCompatEditText
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_edittext_bg"
    android:drawableEnd="@drawable/ic_clear"
    android:drawablePadding="8dp"
    android:padding="8dp"
    android:maxLines="1"
    android:textColor="@android:color/black" />

其中android:drawableEnd属性设置清除按钮的图标,android:drawablePadding属性设置图标与文字的距离。

结语

通过对以上几种样式的设置,我们可以满足不同的设计需求,从而提升用户体验。