运行有问题或需要源码请点赞关注收藏后评论区留言~~~

一、跟踪滑动轨迹实现手写签名

手写签名的原理是把手机屏幕当作画板,把用户手指当作画笔,手指在屏幕上划来划去,屏幕就会显示手指的移动轨迹,就像画笔在画板上写字一样,实现手写签名需要结合绘图的路径工具Path,具体实现步骤如下

1:按下手指时 调用Path对象的moveTo方法 将路径起点移动到触摸点

2:移动手指时 调用Path对象的quadTo方法 记录本次触摸点与上次触摸点之间的路径

3:移动手指或手指提起时,调用Canvas对象的drawPath方法,将本次触摸轨迹绘制在画布上

效果如下

点击开始签名即可开始签名,模拟机就拿鼠标画就可以,真机测试效果会更好

画完后点击重置则会清空

点击回退则会清空上一次的操作

点击结束签名后下方就会出现签名的内容,点击保存图片文件就可以将图片保存至相册用于下次使用

代码如下

Java类

package com.example.event;import android.annotation.SuppressLint;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.MotionEvent;
import android.widget.TextView;@SuppressLint("DefaultLocale")
public class TouchSingleActivity extends AppCompatActivity {private TextView tv_touch; // 声明一个文本视图对象@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_touch_single);tv_touch = findViewById(R.id.tv_touch);}// 在发生触摸事件时触发@Overridepublic boolean onTouchEvent(MotionEvent event) {// 从开机到现在的毫秒数int seconds = (int) (event.getEventTime() / 1000);String desc = String.format("动作发生时间:开机距离现在%02d:%02d:%02d",seconds / 3600, seconds % 3600 / 60, seconds % 60);desc = String.format("%s\n动作名称是:", desc);int action = event.getAction(); // 获得触摸事件的动作类型if (action == MotionEvent.ACTION_DOWN) { // 按下手指desc = String.format("%s按下", desc);} else if (action == MotionEvent.ACTION_MOVE) { // 移动手指desc = String.format("%s移动", desc);} else if (action == MotionEvent.ACTION_UP) { // 松开手指desc = String.format("%s提起", desc);} else if (action == MotionEvent.ACTION_CANCEL) { // 取消手势desc = String.format("%s取消", desc);}desc = String.format("%s\n动作发生位置是:横坐标%f,纵坐标%f,压力为%f",desc, event.getX(), event.getY(), event.getPressure());tv_touch.setText(desc);return super.onTouchEvent(event);}}

XML文件

android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content" >ch_parent"android:layout_height="wrap_content"android:orientation="vertical" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:id="@+id/btn_begin_signature"android:layout_width="0dp"android:layout_height="wrap_content"anor/black"android:textSize="17sp" /><Buttonandroid:id="@+id/btn_reset_signature"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="2"android:text="重置"android:textColor="@color/black"android:textSize="17sp" /><Buttonandroid:id="@+id/btn_revoke_signature"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="2"android:text="回退"android:textColor="@color/black"android:textSize="17sp" /><Buttonandroid:id="@+id/btn_end_signature"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="3"android:text="结束签名"android:textColor="@color/black"android:textSize="17sp" /></LinearLayout><com.example.event.widget.SignatureViewandroid:id="@+id/view_signature"android:layout_width="match_parent"android:layout_height="200dp"android:background="@color/white"app:paint_color="#0000aa"app:stroke_width="5" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:id="@+id/btn_save_signature"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="保存图片文件"android:textColor="@color/black"android:textSize="17sp" /></LinearLayout><ImageViewandroid:id="@+id/iv_signature_new"android:layout_width="match_parent"android:layout_height="200dp"android:background="@color/white" /></LinearLayout></ScrollView></LinearLayout>

创作不易 觉得有帮助请点赞关注收藏~~~

Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)相关推荐

  1. H5手写签名canvas(附源码)

    效果图: 图片保存到服务器为png格式,一般10k左右. 这个功能适用于H5app,或者H5,或者pc网页端(IE9以上,支持canvas), 低端安卓机依然不支持,具体低端到什么程度,没有经过测试. ...

  2. pyTorch入门(六)——实战Android Minist OpenCV手写数字识别(附源码地址)

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为4239字,预计阅读12分钟 前言 前面几篇文章实现了pyTorch训练模型,然后在Windows平台用C++ OpenCV D ...

  3. 【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)

    需要源码请点赞关注收藏后评论区留言私信~~~~ 当今社会正在步入一个万物互联的时代,它的技术基石主要来自5G.物联网和人工智能. 三者融合产生了许多新产品,其中最璀璨的当数自动驾驶的电动车:它汇聚了最 ...

  4. 【Golang项目实战】手把手教你写一个备忘录程序|附源码——建议收藏

    博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作.目前在学习和分享:数据结构.Go,Java等相关知识. 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标:写好专栏的每一篇文 ...

  5. 【Vue 实战项目】后台管理系统登录页详解附源码

    提示:前端查漏补缺,仅代表个人观点. 文章目录 一.先看效果图 二.实战步骤 1. 创建项目 2. 引入库 3. 登录页关键代码 三.页面源代码 总结 提示:项目源代码除了登录页面还有动态路由 一.先 ...

  6. 精讲前端实战项目之移动端网易云首页(附源码)

    本篇文章分享给学习前端的朋友,可能你们长时间的学习了理论知识,对html,css,JavaScript等基础知识已经是相当熟悉了.但是没有一个自己的作品,那是因为缺乏练习一些实战项目.今天这个就是一个 ...

  7. Android App开发手机阅读中PDF文件渲染器的讲解及使用(附源码 简单易懂)

    需要源码和图片集请点赞关注收藏后评论区留言~~~ 一.PDF文件渲染器 Android集成了PDF的渲染操作,从很大程度上方便了开发者,这个PDF文件渲染器便是PdfRenderer.渲染器允许从存储 ...

  8. Android App开发手机阅读中实现平滑翻书效果和卷曲翻书动画实战(附源码 简单易懂 可直接使用)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.平滑翻书效果 与纸质书籍类似,手机上的电子书也有很多页,逐页浏览可采用翻页视图,然而翻页视图犹如一幅从左到右的绵长画卷,与现实生活中上下层叠的书籍 ...

  9. Android App开发之自定义图形中位图与图形互转、剪裁图形内部区域、给图形添加部件的讲解及实战(附源码 简单易懂)

    需要图片和源码点赞关注收藏后评论区留言~~~ 一.位图与图形互转 Drawable用于在界面上展示图片,Bitmap用于加工图像数据,所以两者之间的转换非常有必要,位图图形BitmapDrawable ...

最新文章

  1. ios app 砸壳
  2. java mytable_Mybatis-Plus之@TableField字段
  3. 实现一个函数,对一个正整数n,算得到1
  4. C++中this指针的用法详解
  5. 实时数仓入门训练营:基于 Apache Flink + Hologres 的实时推荐系统架构解析
  6. 【面向对象】泛化与继承
  7. java jmx 监控tomcat_jmx监控之Tomcat
  8. Google Chrome源码剖析【序】
  9. 安卓app开发-02-安卓app快速开发
  10. Cap01_信息化和信息系统
  11. Linux之常用操作命令总结二
  12. 中国农业全要素生产率(1949-2020年)
  13. 数据结构、算法、程序的关系
  14. 计算机辅助设计和辅助制造简称,计算机辅助设计与制造
  15. [转]漫谈个人知识管理-PKM的方法
  16. 电话+电视+网络=“三位一体”?
  17. 曼卡尔M1投影仪怎么样?和哈趣H1对比哪款更好用?
  18. 亚马逊家居行业中办公室家具市场前景分析及货源分享
  19. win10打开蓝牙_在win10中,使用“设置”检查蓝牙设备电量,是个简便的方法
  20. matlab prob计算乘积

热门文章

  1. ubuntu18.04或20.04 安装显卡驱动
  2. 浙大数据结构习题2.6递归求简单交错幂级数和
  3. Unity --- 摄像机的选择与设置
  4. 如何判断当前浏览器是IE11
  5. Mac Xcode崩溃 (打开ios项目引起崩溃)
  6. 化妆品电商平台数据分析报告
  7. 监控电脑屏幕python
  8. 为什么越来越多明星开始关注加密货币?
  9. WordCount的理解与MapReduce的执行过程
  10. Unity 3D游戏九:粒子光环