博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EditText中加入下划线
阅读量:5322 次
发布时间:2019-06-14

本文共 1486 字,大约阅读时间需要 4 分钟。

      在我们实际开发中,经常会用到把EditText去掉背景的输入框,然后加入下划线,就像写信的信纸一样,。我们首先会想到设置控件的属性,但是发现EditText根本就没有加入下划线这个设置,所以我们得来修改一下EditText,来完成我们的需求。

     我们既然要改写EditText,首先继承EditText,代码如下:

1 public class LineEditText extends EditText { 2     // 画笔 用来画下划线 3     private Paint paint; 4  5     public LineEditText(Context context, AttributeSet attrs) { 6         super(context, attrs); 7         paint = new Paint(); 8         paint.setStyle(Paint.Style.STROKE); 9         paint.setColor(Color.RED);10         // 开启抗锯齿 较耗内存11         paint.setAntiAlias(true);12     }13 14     @Override15     protected void onDraw(Canvas canvas) {16         super.onDraw(canvas);17         // 得到总行数18         int lineCount = getLineCount();19         // 得到每行的高度20         int lineHeight = getLineHeight();21         // 根据行数循环画线22         for (int i = 0; i < lineCount; i++) {23             int lineY = (i + 1) * lineHeight;24             canvas.drawLine(0, lineY, this.getWidth(), lineY, paint);25         }26 27     }28 29 }

   其中红色为核心代码,getLineHeight()方法得到的行高度与我们设置的字体大小有关系,其中canvas.drawLine是画直线的代码,参数分别为:开始x坐标,开始y坐标,结束x坐标,结束y坐标,Paint类的对象。 this.getWidth()是父类View的方法获得控件的宽度。

          我们现在准备好自定义的EditText,就开始使用,把自定义控件注册到main.xml中去,如下所示:

1 
2
7 8
14
15 16

  其中<com.view.demo.view.LineEditText/> 标签的名称就是这个自定义类的包名+类名 ,android:background="@null"的作用就是去掉EditText的输入框,好的完成以上步骤,我们就可以在Activity中使用这个自定义控件了,在Activity中引入这个main.xml。运行效果如下:

                                                

转载于:https://www.cnblogs.com/liutianyi/archive/2012/12/25/2831968.html

你可能感兴趣的文章
python知识思维导图
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>
点击复制插件clipboard.js
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
Phpstorm中使用SFTP
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>