600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > android 使用画布实现电子签名板功能并保存到本地

android 使用画布实现电子签名板功能并保存到本地

时间:2024-05-09 09:53:14

相关推荐

android 使用画布实现电子签名板功能并保存到本地

下一篇-> -> ->使用popupWindow 弹框显示画板<- <- <-

有一个bug 存在。保存路径的过程出错了。有些手机是可以进行的。后续更改保存路径问题。(已修改,见最后)

一、怎么画??

1、首先我们需要一个view在进行绘制我们的内容,那么创建一个类来继承view,

你需要画画,那你需要什么共工具??画布,画笔

1、canvas--在我的理解,虚拟化的一个画布区域

2、paint

那你用什么东西来垫画布??

3、bitmap 相当于正真的吧东西画到纸上一样

2、初始化我们需要的view以及方法

自己手打吧骚年,那样才有影响,cv模式记不清的

实现view的3个构造方法

intiview

然后在 onsizeChanged 吧bitmap 和canvas 给搞上去

这段的意思是 onsizechange当view的大小改变的时候 ,进行相应的操作

bitmap.careBitmap 创建一个与view一样大小的画布

canvas(canvasBitmap)

3、开画

ondraw方法,肯定就是用来画画的啦,不要在意注释的东西,哈哈

画布能画东西,那怎么样也得有一只能画画的手吧;

走起,搞一双+(*)鹰之手

onTouchEven()

按下去的时候记录坐标

按下时的操作

先清空之前的画笔 reset

开始画,moveto(x,y)

更换动作的时候记录最后的位置,这里你要明白,点下去 就是down的操作,手指一旦移动就不是down啦,

分清楚。所以在down操作之后要记住按住屏幕时的坐标

移动时的操作

quadto(),画出贝塞尔曲线

你也可以试一试lintTo时怎样的

手指抬起的时候

完整的onTouchEvent

搞定、画画的部分就到这了,结束???不存在的。

是不是不一样,你会发现使用上面我提供的方法你会画出按钮下面那个路径,并不是很圆滑

让我们改一改,升级一下画画的手

升级完毕,这是让曲线更加的圆滑

二、怎么保存?

扔上去就搞定啦,至于路径怎么搞,百度一下就有了嘛是吧。google一下就行了嘛是吧。

你运行一下啊代码你会发现,坑爹,报错了=-=

是不是这个错啊,一般就就是 一个空指针

就是这里,把我坑了好久的问题,为毛空??加一个static 就搞定了

private static BitmapcanvasBitmap;

原因我也不知道?那怎么办??我要好好研究啊~~~

bug修改在机子上无法正确保存路径

我们在view里头修改:

原本:

修改后

在调用的save()方法的activity/fragment/等等 修改:

String pathName = Environment.getExternalStorageDirectory().getAbsolutePath();Log.d("path", "writeFileData: " + Environment.getExternalStorageDirectory());File savefile = new File(pathName, "test");if (!savefile.exists()) {savefile.mkdir();}

先创建一个file来存储我们要保存的图片。

pathname 存储的地址就是/stroage/sdcard/test

可以看见都是存在的,创建完成之后我们在把我们的文件下的图片给个名字

String pathNmae =savefile.getPath()+ "/"+String.valueOf(System.currentTimeMillis())+".png";

最后我们吧pathName传进去就可以了。

mLinePathView.save(pathNmae, true, 10);

最后效果图如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。