欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中实现记事本动态添加行效果

程序员文章站 2023-11-16 20:41:52
本文主要给大家介绍了关于android实现记事本动态添加行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 先看效果图: 这是昨天在群里面有人在...

本文主要给大家介绍了关于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" />

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。