带下划线的EditText
2016-06-27 17:17
369 查看
public class LinedEditText extends EditText { private Paint linePaint; private float margin; private int paperColor; public LinedEditText(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); this.linePaint = new Paint(); } @Override protected void onDraw(Canvas paramCanvas) { paramCanvas.drawColor(this.paperColor); int i = getLineCount();// 得到总的行數 int j = getHeight();// 获得TextView的高度 int k = getLineHeight();// 获得TextView的行高 int m = j / k + 1;// 总的线数 if (i < m) i = m; int n = getCompoundPaddingTop(); Log.d("wxl", "n----" + n); paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint); for (int i2 = 0;; i2++) { if (i2 >= i) { setPadding(10 + (int) this.margin, 0, 0, 0); super.onDraw(paramCanvas); paramCanvas.restore(); return; } n += k; paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint); paramCanvas.save(); } } }
主要工作就是重载onDraw方法,利用从TextView继承下来的getLineCount函数获取文本所占的行数,以及getLineBounds来获取特定行的基准高度值,而且这个函数第二个参数会返回此行的“外包装”值。再利用这些值绘制这一行的线条。为了让界面的View使用自定义的EditText类,必须在配置文件中进行设置
相关文章推荐
- Android的TextView与Html相结合的具体方法
- Android中实现为TextView添加多个可点击的文本
- android textview 显示html方法解析
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android实现TextView中文字链接的4种方式介绍及代码
- android TextView属性的详细介绍 分享
- Android UI设计系列之自定义TextView属性实现带下划线的文本框(4)
- Android开发实现TextView显示丰富的文本
- Android自定义TextView实现drawableLeft内容居中
- Android重写TextView实现文字整齐排版的方法(附demo源码下载)
- Android TextView实现跑马灯效果的方法
- Android TextView跑马灯效果实现方法
- Android编程设置TextView颜色setTextColor用法实例
- Android实现TextView两端对齐的方法
- Android UI设计系列之HTML标签实现TextView设置中文字体加粗效果(6)
- Android编程中TextView宽度过大导致Drawable无法居中问题解决方法
- Android TextView显示html样式的文字
- Android TextView字体颜色设置方法小结
- android TextView加下划线的方法
- android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法