Android EditText如何去除边框添加下划线
(一)问题
package com.ayqy.app_test; import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.widget.EditText; public class myEditText extends EditText{ private int lineColor;//横线颜色
private float lineWidth;//横线宽度 public myEditText(Context context) {
super(context); //设置默认颜色和横线宽度
lineColor = Color.BLUE;//默认蓝色线
lineWidth = 0.5f;//默认宽度为0.5
} public myEditText(Context context,int color,float width) {
super(context); //设置颜色和横线宽度
this.lineColor = color;
this.lineWidth = width;
} @Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas); //创建画笔
Paint mPaint = new Paint();
mPaint.setStrokeWidth(lineWidth);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(lineColor); //获取参数
int padL = this.getPaddingLeft();//获取框内左边留白
int padR = this.getPaddingRight();//获取框内右边留白
int padT = this.getPaddingTop();//获取框内顶部留白
int lines = this.getLineCount();//获取行数
float size = this.getTextSize();//获取字体大小
float baseTop = padT + size / ;//从上向下第一条线的位置
/*这里需要说明的是size/6这个值,是偶然测试得到的,近似于行距的一半
*为什么不用EditText.getLineSpacingExtra();来获取行距?
*因为测试发现若调用EditText的getLineSpacingExtra方法会报NoSuchMethod错误,具体原因不明
*测试发现行距的值近似于TextSize的1/3,在需要用到行距的时候可以用这个值来代替getLineSpacingExtra方法
* */
float gap = this.getLineHeight();//获取行宽 //从上向下划线
for(int i = ;i <= lines;i++)
{
canvas.drawLine(padL//startX
, baseTop + gap * i//startY
, this.getWidth() - padR//endX
, baseTop + gap * i//endY
, mPaint);
}
} public int getLineColor() {
return lineColor;
} public void setLineColor(int color) {
this.lineColor = color;
} public float getLineWidth() {
return lineWidth;
} public void setLineWidth(float width) {
this.lineWidth = width;
} }
P.S.上方的代码注释提到了“测试发现若调用EditText的getLineSpacingExtra方法会报NoSuchMethod错误”,Google之后发现好像没人遇到过这个问题,如有朋友知道答案请在下方留言,谢谢
Android EditText如何去除边框添加下划线的更多相关文章
- Android TabHost TabWidget 去除黑线(底部下划线)
采用TabHost布局时,往往会发现默认的系统风格与软件风格很不协调,比如TabWidget的下划线影响布局效果.通常情况下会去除其下划线.如果是采用xml布局文件,在TabWidget的属性项设置a ...
- Android 给EditText添加下划线
在安卓高版本,默认是有下划线的,其默认下划线的颜色是由其主题颜色来控制的! 控制如下: <style name="AppTheme" parent="Theme.A ...
- iOS开发-UILabel和UIButton添加下划线
关于UILabel和UIButton有的时候需要添加下划线,一般有两种方式通过默认的NSMutableAttributedString设置,第二种就是在drawRect中画一条下划线,本文就简单的选择 ...
- vim显示行号、语法高亮、自动缩进、添加下划线的设置
ubuntu默认是没有安装vim的,所以设置以前请先安装vim:sudo apt-get install vim. 然后 打开vim的配置文件:sudo vim /etc/vim/vimrc 或者 s ...
- IOS UIlabel 、UIButton添加下划线
1.给UILabel 添加下划线 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(, , , )]; label.backgrou ...
- UILabel和UIButton添加下划线
关于UILabel和UIButton有的时候需要添加下划线,一般有两种方式通过默认的 NSMutableAttributedString设置,第二种就是在drawRect中画一条下划线,本文就简单的选 ...
- "为文本添加下划线"组件:<u> —— 快应用组件库H-UI
 <import name="u" src="../Common/ui/h-ui/text/c_tag_underline"></impor ...
- Android 去除EditText边框,添加下划线,
首先:重写EditText //请在这里添加您的包名 import android.content.Context; import android.graphics.Canvas; import an ...
- 【我的Android进阶之旅】如何隐藏Android中EditText控件的默认下划线
Android EditText控件是经常使用的控件,但是有时候我们并不需要它的一些默认的属性,比如说下划线,因为有时候这样的默认下划线看起来特别怪异,和其他控件在一起搭配的时候不协调,因此有时候就需 ...
随机推荐
- String类中toCharArray()方法的用法
该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符 eg: public class class6_3 { public static void main(String arg ...
- Ajax的概述与实现过程
一.ajax概述 1.Ajax是Asynchronous([ə'sɪŋkrənəs) JavaScript XML的简写,不是一门新技术,而是对现有技术的综合利用.这一技术能够向服务器请求额外数据而无 ...
- wait(...) notify() notifyAll()
简介 wait.notify.notifyAll是Java中3个与线程有关的方法,它们都是Object类中的方法. 其中,wait方法有3个重载形式: 1.wait() 2.wait(long tim ...
- javascript函数基础
Function类型 由于函数是对象,因此函数名实际上是一个指向函数对象的指针,不会与函数绑定 所以没有重载这个概念!!!!!!!!!!!!!!!!!!!!!!!!!! function sum1() ...
- PHP中0、空、null和false的总结
php中很多人还不懂php中 0 , '' , null 和 false 之间的区别,这些区别有时会影响到数据判断的正确性和安全性,给程序的测试运行造成很多麻烦.另外在面试题中也会遇到这些问题,如下: ...
- JavaScript自定义方法实现trim()、Ltrim()、Rtrim()
去除字符串两端的空格,是字符串处理非常常用的方法如何trim() .Ltrim() .Rtrim(),可惜的是javascript中无此方法,下面有个不错的自定义教程感兴趣的朋友可以参考下 去除字符串 ...
- 用javascript快速清空你的人人时间轴、状态和分享
博客已经迁移到www.imyzf.com,本站不再更新,请谅解! 现在玩人人的人越来越少了,很多人担心不玩以后东西放上面不安全..我也有同样的想法,但是手动删除上百条东西,太累了,于是写了些javas ...
- 异步委托 多线程实现摇奖器 winform版
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- js replace in multi-line string
.replace(/{id}/g, '_' + counter);
- 【软件分享】文本对比工具 Beyond Compare
转载自公众号:EmbeddDeveloper 对嵌入式感兴趣可以关注原作者博客: http://blog.csdn.net/ybhuangfugui 此处转载为分享用 Ⅰ.摘要 Beyond Comp ...