Android中实现记事本动态添加行效果
程序员文章站
2023-12-09 20:38:21
本文主要给大家介绍了关于android实现记事本动态添加行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
先看效果图:
这是昨天在群里面有人在...
本文主要给大家介绍了关于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" />
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。