重寫editText組件以實現記事本的下劃線功能

一、重寫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中

     //  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            
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章