重写editText组件以实现记事本的下划线功能
来源:互联网 发布:淘宝hd 5.0.1 编辑:程序博客网 时间:2024/05/16 05:58
一、重写EditText方法:
记事本应用中,将编写记事界面改写成了有行数的形式。默认的EditText不支持该功能,故此重新EditText方法,自己划线。
public class MyEditText extends EditText{
public MyEditText(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
int height=getLineHeight();// 获取到线的高度
int i=(int)(getHeight()/height);// 总的高度/线的高度
i=Math.max(i, getLineCount());// 取行数与i的最大值
int a=height/2;
Paint myPaint=new Paint();//定义一个新的画笔
myPaint.setColor(color.black);//画笔的颜色是黑色的
for(int j=1;j<i;j++){
canvas.drawLine(0,height*(j)+25,getWidth(), height*(j)+25, myPaint);//当前(x1,y1)和(x2,y2)以及画笔颜色
}
}
}
二、实现在EditText中划线功能:
1) 用java代码实现:
contentText = new MyEditText(this);//新建一个MyEditText()
contentText.setHint("编辑。。。");
contentText.setMinLines(20);
contentText.setTextSize(23);
contentText.setGravity(Gravity.TOP);
layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10, 10, 30, 30);
linearLayout.addView(contentText, layoutParams);
2) 用xml文件实现:
android: layout_width="match_parent"
android: layout_height="fill_parent"
android: gravity ="top"
android: textSize="25sp"
android: minLines="10"
三、实现字符串的分割:(记事中的前五个字符作为记事本的title)
// String text = getIntent().getStringExtra(DataBase.TEXT);//将记事本的内容取出放在text中
记事本应用中,将编写记事界面改写成了有行数的形式。默认的EditText不支持该功能,故此重新EditText方法,自己划线。
public class MyEditText extends EditText{
public MyEditText(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
int height=getLineHeight();// 获取到线的高度
int i=(int)(getHeight()/height);// 总的高度/线的高度
i=Math.max(i, getLineCount());// 取行数与i的最大值
int a=height/2;
Paint myPaint=new Paint();//定义一个新的画笔
myPaint.setColor(color.black);//画笔的颜色是黑色的
for(int j=1;j<i;j++){
canvas.drawLine(0,height*(j)+25,getWidth(), height*(j)+25, myPaint);//当前(x1,y1)和(x2,y2)以及画笔颜色
}
}
}
二、实现在EditText中划线功能:
1) 用java代码实现:
contentText = new MyEditText(this);//新建一个MyEditText()
contentText.setHint("编辑。。。");
contentText.setMinLines(20);
contentText.setTextSize(23);
contentText.setGravity(Gravity.TOP);
layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10, 10, 30, 30);
linearLayout.addView(contentText, layoutParams);
2) 用xml文件实现:
android: layout_width="match_parent"
android: layout_height="fill_parent"
android: gravity ="top"
android: textSize="25sp"
android: minLines="10"
三、实现字符串的分割:(记事中的前五个字符作为记事本的title)
// String text = getIntent().getStringExtra(DataBase.TEXT);//将记事本的内容取出放在text中
// head.setText(text.substring(0, 5));//取text的前五个字符作为标题
String text = getIntent().getStringExtra(DataBase.TEXT);
String path = getIntent().getStringExtra(DataBase.IMAGE_PATH);
int textLEN=text.length();
Log.d(TAG, "textLEN="+textLEN);
if(textLEN<=5){
head.setText(text);
}
else{
head.setText(text.substring(0, 5));//进入某一记事察看相关内容时显示的title
}
0 0
- 重写editText组件以实现记事本的下划线功能
- 重写EditText,使其具有下划线
- 重写EditText,使其具有下划线
- 去除EditText的下划线
- 去掉EditText的下划线
- 带多行下划线的EditText
- 隐藏EditText的下划线
- 记事本读写文件功能的实现
- android实现EditText中加多行下划线的一种方法
- android实现EditText中加多行下划线的一种方法
- C#实现记事本功能
- MFC 实现记事本功能
- MFC 实现记事本功能 .
- 【android学习】带清除功能的EditText重写
- EditText去除原有的下划线
- 简单去掉EditText的下划线
- EditText下划线
- 重写struts2的TEXT标签对象以实现自己想在标签上增加默认显示内容的功能
- MYSQL查询空值/NULL值
- 动物这样叫
- leetcode 记录61-90
- 十六周阅读程序3
- Java中的ThreadLocal的使用--学习笔记
- 重写editText组件以实现记事本的下划线功能
- XTU 1236 Fibonacci
- Graphics
- Jenkins忘记管理员密码
- 系统调用和库函数的区别
- 第14周 项目二(2)
- 2016-6-15《烽火通信科技股份有限公司》笔试题总结
- 剑指offer29--从1到n整数中1出现的个数
- 十六周 文件