您好,登錄后才能下訂單哦!
本文主要給大家介紹了關于Android實現記事本動態添加行的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:
先看效果圖:
這是昨天在群里面有人在問這個問題,在這里順便記錄一下,這個效果我們可以自定義EditText,實現起來也不難
看詳細步驟:
第一:初始化Paint,這里肯定要用到畫筆的
this.paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setColor(getResources().getColor(R.color.paper_line)); paint.setStrokeWidth(getLineHeight() / 10); paint.setStrokeCap(Paint.Cap.ROUND);
第二步:在onDraw里面計算一下偏移量就可以
float startX = getPaddingLeft();//開始位置 float stopX = getWidth() - getPaddingRight();//結束位置 float offsetY = getPaddingTop() - getPaint().getFontMetrics().top + paint.getStrokeWidth() * 2;//行間距 for (int i = 0; i < getLineCount(); ++i) { float y = offsetY + getLineHeight() * i; canvas.drawLine(startX, y, stopX, y, paint); }
Ok,這樣就輕松搞定了。
全部代碼:
/** * Created by dong.he on 2017/4/20 0020. */ public class LinedEditText extends EditText { Paint paint; public LinedEditText(Context context) { super(context); init(); } public LinedEditText(Context context, AttributeSet attrs) { super(context, attrs); init(); } public LinedEditText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @Override protected void onDraw(Canvas canvas) { float startX = getPaddingLeft();//開始位置 float stopX = getWidth() - getPaddingRight();//結束位置 float offsetY = getPaddingTop() - getPaint().getFontMetrics().top + paint.getStrokeWidth() * 2;//行間距 for (int i = 0; i < getLineCount(); ++i) { float y = offsetY + getLineHeight() * i; canvas.drawLine(startX, y, stopX, y, paint); } super.onDraw(canvas); } private void init() { this.paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setColor(getResources().getColor(R.color.paper_line)); paint.setStrokeWidth(getLineHeight() / 10); paint.setStrokeCap(Paint.Cap.ROUND); } }
xml:
<com.example.donghe.myview.view.LinedEditText android:id="@+id/textview" android:text="啊發發十分啊發發十分大發放大發放" android:textSize="18sp" android:background="@null" android:layout_width="match_parent" android:layout_height="wrap_content" />
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。