Android中實現記事本動態(tài)添加行效果
更新時間:2017年06月08日 11:28:24 作者:何東_hd
記事本對我們每個人來說再熟悉不過,下面這篇文章主要給大家介紹了在Android中實現記事本動態(tài)添加行效果的相關資料,這是最近在開發(fā)中遇到的一個小需求,想著分享出來供大家參考學習,需要的朋友們下面來一起看看吧。
本文主要給大家介紹了關于Android實現記事本動態(tài)添加行的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:
先看效果圖:

這是昨天在群里面有人在問這個問題,在這里順便記錄一下,這個效果我們可以自定義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="啊發(fā)發(fā)十分啊發(fā)發(fā)十分大發(fā)放大發(fā)放" android:textSize="18sp" android:background="@null" android:layout_width="match_parent" android:layout_height="wrap_content" />
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Android6.0 storage目錄sd卡存儲的路徑創(chuàng)建詳解
這篇文章主要介紹了Android6.0 storage目錄sd卡存儲的路徑創(chuàng)建的相關資料,需要的朋友可以參考下2017-01-01
Android開發(fā)-之監(jiān)聽button點擊事件的多種方法
本篇文章主要是介紹了Android開發(fā)之監(jiān)聽button點擊事件的方法,Android開發(fā)-之監(jiān)聽button點擊事件的方法總結,有興趣的可以了解一下。2016-11-11

