全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

总结

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


# android  # 动态添加行  # 记事本  # android记事本开发  # Android实现简易记事本  # Android实现记事本小功能  # Android记事本项目开发  # Android实现记事本功能  # android实现记事本app  # Android+SQLite数据库实现的生词记事本功能实例  # Android实现记事本功能(26)  # Android利用Intent实现记事本功能(NotePad)  # Android手机开发设计之记事本功能  # 行间  # 这是  # 大发  # 在这里  # 相关内容  # 这个问题  # 我们可以  # 给大家  # 自定义  # 这篇文章  # 谢谢大家  # 第二步  # 先看  # 肯定要  # 就可以  # 搞定了  # 群里  # 昨天  # 偏移量  # 有疑问 


相关文章: 如何配置支付宝与微信支付功能?  Thinkphp 中 distinct 的用法解析  实现虚拟支付需哪些建站技术支撑?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  宁波自助建站系统如何快速打造专业企业网站?  网站制作模板下载什么软件,ppt模板免费下载网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  为什么Go需要go mod文件_Go go mod文件作用说明  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  自助网站制作软件,个人如何自助建网站?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  开源网站制作软件,开源网站什么意思?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  建站之星如何保障用户数据免受黑客入侵?  建站与域名管理如何高效结合?  深圳网站制作的公司有哪些,dido官方网站?  建站之星微信建站一键生成小程序+多端营销系统  如何快速查询域名建站关键信息?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何快速使用云服务器搭建个人网站?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  魔方云NAT建站如何实现端口转发?  大连网站设计制作招聘信息,大连投诉网站有哪些?  建站之星官网登录失败?如何快速解决?  香港网站服务器数量如何影响SEO优化效果?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何通过万网虚拟主机快速搭建网站?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  如何解决ASP生成WAP建站中文乱码问题?  如何在香港服务器上快速搭建免备案网站?  如何选择高效响应式自助建站源码系统?  如何规划企业建站流程的关键步骤?  如何在阿里云高效完成企业建站全流程?  如何获取上海专业网站定制建站电话?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  ,交易猫的商品怎么发布到网站上去?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  动图在线制作网站有哪些,滑动动图图集怎么做?  如何设计高效校园网站?  建站之星免费版是否永久可用?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  *服务器网站为何频现安全漏洞?  如何选择建站程序?包含哪些必备功能与类型?  如何用PHP快速搭建高效网站?分步指南  中山网站推广排名,中山信息港登录入口?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。