下一篇-> -> ->使用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  Bitmap canvasBitmap;

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

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);

最后效果图如下

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

  1. Android实现将View转化为图片并保存到本地

    一.概述 app中有需求需要将View转化为图片并保存到本地,这里分两种情况: 1.View本身已经显示在界面上 2.View还没有添加到界面上或者没有显示(绘制)过 二.实现方法 对于上述的第一种情 ...

  2. android调用系统照相机拍照,并压缩保存在本地

    1.首先拍照和保存文件肯定就需要申请权限 <!-- 往SDCard写入数据权限 --><uses-permission android:name="android.perm ...

  3. 前端手写电子签名板实现方案

    前端手写电子签名板实现 作者:@ 很菜的小白在分享 时间:2022年12月29日 介绍 什么是电子签名 电子签名是指数据电文中以电子形式所含.所附用于识别签名人身份并表明签名人认可其中内容的数据.-- ...

  4. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  5. Android之OpenCv简单人脸识别功能(Bitmap)

    Android之OpenCv简单人脸识别功能 OpenCv的下载 下载地址 - https://opencv.org/releases/ doc 文档目录 samples 示例代码 sdk 编译后的动 ...

  6. android中最新webview的功能,Android WebView实现截长图功能

    本文实例为大家分享了Android实现截长图功能的具体代码,供大家参考,具体内容如下 先看看手机自带的长截屏功能:  机型: vivo x9 plus 大胆推测实现逻辑: 1:需要一个可以滚动的Vie ...

  7. android webview 图片居中,Android WebView实现截长图功能

    本文实例为大家分享了Android实现截长图功能的具体代码,供大家参考,具体内容如下 先看看手机自带的长截屏功能:  机型: vivo x9 plus 大胆推测实现逻辑: 1:需要一个可以滚动的Vie ...

  8. android实现计算器功能吗,利用Android实现一个简单的计算器功能

    利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...

  9. Android系统将内置滤镜功能

    from: http://cblog.cc/2015/09/03/Android-Camera-%E5%AE%9E%E6%97%B6%E6%BB%A4%E9%95%9C/ 一.Android系统将内置 ...

  10. Android 5.0中的FDE功能实现

    标 题:  [分享]Android 5.0中的FDE功能实现 作 者: netsniffer 时 间: 2015-01-27,21:15:06 链 接: http://bbs.pediy.com/sh ...

最新文章

  1. CommonJS规范与AMD规范的理解
  2. 干货丨一文看懂什么是知识图谱!
  3. 棋盘覆盖问题原理及演示程序
  4. 使用 Cordova 打包 app
  5. 什么是Freedoc?Freedoc是什么?
  6. 八、计数排序及其应用分析
  7. docker 查看实时日志
  8. dataframe groupby_详解pandas中的map、apply、applymap、groupby、agg.
  9. Android编程之DialogFragment源码详解(一)
  10. Tomcat8+redis实现session共享
  11. Unity(一)Scene和GameObject
  12. 毕业季的你准备好面试了吗?(下)
  13. 判断标题不为空(包含空格)
  14. 清华教授发文劝退读博:​​我见过太多博士生精神崩溃、心态失衡、身体垮掉、一事无成!...
  15. PowerPivot的杀手锏是什么?
  16. 初学者应该买什么样的吉他 |新手建议|新手必看
  17. 数据挖掘(二)预测潜在贷款发放客户
  18. 保姆级教程!将 Vim 打造一个 IDE (Python 篇)
  19. 服装设计师的灵感来源于哪里?
  20. Boston Dog

热门文章

  1. PHP实现留言板功能
  2. 悟空CRM的环境搭建
  3. autojs遍历当前页面所有控件_解放双手,手机自动化神器-AutoJS的使用
  4. UDP编程与Socket
  5. 使用服务器代替雷达信号处理,雷达数字信号处理解决方案
  6. 成功在中东和北非地区发布应用或游戏的 7 个技巧
  7. 探索大型网站技术架构(二)
  8. HSqlDB(java内置数据库)
  9. Linux下编译OpenSSL
  10. html 让360浏览器兼容模式,360浏览器兼容模式的设置方法