博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android关于实现EditText中加多行下划线的的一种方法
阅读量:4607 次
发布时间:2019-06-09

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

1. 重写EditText

1 public class LinedEditText extends EditText { 2     private Paint linePaint; 3     private float margin; 4     private int paperColor; 5  6     public LinedEditText(Context paramContext, AttributeSet paramAttributeSet) { 7         super(paramContext, paramAttributeSet); 8         this.linePaint = new Paint(); 9     }10 11     protected void onDraw(Canvas paramCanvas) {12         paramCanvas.drawColor(this.paperColor);13         int i = getLineCount();14         int j = getHeight();15         int k = getLineHeight();16         int m = 1 + j / k;17         if (i < m)18             i = m;19         int n = getCompoundPaddingTop();20         paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint);21         for (int i2 = 0;; i2++) {22             if (i2 >= i) {23                 setPadding(10 + (int) this.margin, 0, 0, 0);24                 super.onDraw(paramCanvas);25                 paramCanvas.restore();26                 return;27             }28             n += k;29             paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint);30             paramCanvas.save();31         }32     }33 34 }

这段代码,并不复杂没有加注释,学过Java的同学应该不会吃力。

2.在布局文件中使用

1 
6 7
13 14

注意:使用EditText控件时,不再使用EditText前缀,而是重写之后完整路径的包名+类名(如com.example.storetest.LinedEditText)。

3.在使用时与正常调用EditText时一致。

——整理自网络,多多分享

转载于:https://www.cnblogs.com/xohg/archive/2012/10/08/2715370.html

你可能感兴趣的文章
IO模型之二-linux网络IO模式select,poll,epoll
查看>>
验证身份证真假
查看>>
排列组合( Lindström–Gessel–Viennot lemma 定理)
查看>>
[转]EF 4.1 Code First
查看>>
如何让Win2008登录时只显示一个用户
查看>>
Maven项目的配置及遇到的一些问题
查看>>
恶意访问网站的策略处理,IP访问限制
查看>>
Linux清屏命令
查看>>
Oracle 查询
查看>>
debug、release
查看>>
CrawlSpider源码分析
查看>>
开学第一节课测试感受
查看>>
<%@include和<jsp:include
查看>>
设计模式-系列索引
查看>>
c语言之控制语句:循环
查看>>
分析恶意驱动(进程启动apc注入dll)
查看>>
Unity你不知道的秘密
查看>>
从网页获取图片
查看>>
在Python程序中调用Java代码的实现
查看>>
数组经典操作总结
查看>>