記事本應用中,將編寫記事界面改寫成了有行數的形式。默認的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
}