Android画板开发之基本画笔功能
程序员文章站
2022-04-30 22:47:02
一、简介
这是画板系列的第一篇,一步步开始,从简单的画板,到功能稍微齐全一点的画板,例如基本画笔、橡皮擦、背景、文字、撤销、反撤销、保存等
这篇带大家实现一个最简单...
一、简介
这是画板系列的第一篇,一步步开始,从简单的画板,到功能稍微齐全一点的画板,例如基本画笔、橡皮擦、背景、文字、撤销、反撤销、保存等
这篇带大家实现一个最简单的画板,前提是需要对自定义view有一定的了解。
用的是kotlin语言
二、实现
分析如何实现: 定义了画笔和path,然后在触摸屏幕的时候,手指一边移动一边进行path的滑动,绘制。这就完成了一个最简单的画笔功能。
下面几十行代码完成这个
class tpview(context: context,attr:attributeset ) : view(context,attr) { private var prex: float = 0.0f //上一次的触摸点x坐标 private var prey: float = 0.0f //上一次触摸点y坐标 var mpath = path() //path路径 //画笔 private var mpaint = paint(paint.anti_alias_flag or paint.dither_flag) init { //画笔为实心 mpaint.style = paint.style.stroke //颜色 mpaint.color = color.red //笔触为圆形 mpaint.strokecap = paint.cap.round //画笔大小 mpaint.strokewidth = 10f //view的背景颜色 setbackgroundcolor(color.white) } override fun ondraw(canvas: canvas) { super.ondraw(canvas) //画线 canvas.drawpath(mpath,mpaint) } override fun ontouchevent(event: motionevent): boolean { when(event.action){ motionevent.action_down -> { //手指按下的时候 //将起始点移动到当前坐标 mpath.moveto(event.x,event.y) //记录上次触摸的坐标,注意action_down方法只会执行一次 prex = event.x prey = event.y } motionevent.action_move -> { //手指移动的时候 //绘制圆滑曲线,即贝塞尔曲线,贝塞尔曲线这个知识自行了解 mpath.quadto(prex,prey,event.x,event.y) prex = event.x prey = event.y } } //重新绘制,会调用ondraw方法 invalidate() return true } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 宋代发展繁荣后,出现了哪些娱乐活动?
推荐阅读
-
Android通讯录开发之删除功能的实现方法
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
Android开发之选项卡功能的实现方法示例
-
Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码
-
浅谈Android手机联系人开发之增删查改功能
-
Android开发之TextView使用intent传递信息,实现注册界面功能示例
-
Android开发之ListView功能扩展,实现高性能的瀑布流布局讲解
-
Android开发之做一键批量卸载App功能的详细讲解
-
Android开发之DatePicker和TimePicker实现选择日期时间功能示例
-
Android开发之ViewFlipper自动播放图片功能实现方法示例