EditText怎样设置成下划线

最后更新于:2022-04-01 11:26:04

###EditText怎样设置成下滑线 android5.0以后开始兴起一片扁平化的UI风,现在android系统自带的edittext是一个带有凹凸感的框,不适合扁平化的设计,而且edittext的自带属性中没有设置样式的属性。那么我们想把edittext设置成一条下划线的形式,就只能重新自定义一个edittext,重写他的ondraw方法;代码如下:![微笑](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-18_569ca449c5105.gif) ~~~ public class LineEditText extends EditText { private Paint paint; public LineEditText(Context context, AttributeSet attrs) { super(context, attrs); //设置画笔的属性 paint = new Paint(); paint.setStyle(Paint.Style.STROKE); //可以自定义画笔的颜色,我这里设置成黑色 paint.setColor(Color.BLACK); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); /**canvas画直线,从左下角到右下角,this.getHeight()-2是获得父edittext的高度,但是必须要-2这样才能保证 * 画的横线在edittext上面,那样才看得见,如果不-2,你可以试一试看一下是否能看得见。 */ canvas.drawLine(0, this.getHeight()-2, this.getWidth()-2, this.getHeight()-2, paint); } } ~~~ 这样自定义的LineEditText就好了,那么就可以在xml中使用他了 ~~~ <com.youle.bige.view.LineEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="20dp" android:hint="@string/register_name" android:singleLine="true" android:background="@null"/> ~~~ 请注意,上面有一句非常关键的代码,那就是 ~~~ android:background="@null" ~~~ 只有当background设置成null的时候才能生效。以下是效果图: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-25_571e21521c13a.jpg) 看起来是不是非常的扁平化呢!好了自定义edittext实现下划线! 希望对各位的学习和工作有所帮助!谢谢!
';