本文实例为大家分享了Android手写签名的实现方法,产品要求用户可以在app上签协议。。所以得弄个手写签名版,参考了一些资料自己写了个PaintView去继承View,实现签名功能。

package com.****.*****.widget;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.util.AttributeSet;

import android.view.MotionEvent;

import android.view.View;

/**

* This view implements the drawing canvas.

*

* It handles all of the input events and drawing functions.

* 签名版

*/

public class PaintView extends View {

private Paint paint;

private Canvas cacheCanvas;

private Bitmap cachebBitmap;

private Path path;

private OnMoveLisener lisener;

public void setSize(int width,int height,OnMoveLisener lisener) {

this.lisener=lisener;

init(width,height);

}

public PaintView(Context context, AttributeSet attrs) {

super(context, attrs);

//init(0,0);

}

public Bitmap getCachebBitmap() {

return cachebBitmap;

}

private void init(int width,int height) {

paint = new Paint();

paint.setAntiAlias(true);

paint.setStrokeWidth(3);

paint.setStyle(Paint.Style.STROKE);

paint.setColor(Color.BLACK);

path = new Path();

cachebBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

cacheCanvas = new Canvas(cachebBitmap);

cacheCanvas.drawColor(Color.WHITE);

}

public void clear() {

if (cacheCanvas != null) {

paint.setColor(Color.WHITE);

cacheCanvas.drawPaint(paint);

paint.setColor(Color.BLACK);

cacheCanvas.drawColor(Color.WHITE);

invalidate();

}

}

@Override

protected void onDraw(Canvas canvas) {

// canvas.drawColor(BRUSH_COLOR);

canvas.drawBitmap(cachebBitmap, 0, 0, null);

canvas.drawPath(path, paint);

}

@Override

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

int curW = cachebBitmap != null ? cachebBitmap.getWidth() : 0;

int curH = cachebBitmap != null ? cachebBitmap.getHeight() : 0;

if (curW >= w && curH >= h) {

return;

}

if (curW < w)

curW = w;

if (curH < h)

curH = h;

Bitmap newBitmap = Bitmap.createBitmap(curW, curH, Bitmap.Config.ARGB_8888);

Canvas newCanvas = new Canvas();

newCanvas.setBitmap(newBitmap);

if (cachebBitmap != null) {

newCanvas.drawBitmap(cachebBitmap, 0, 0, null);

}

cachebBitmap = newBitmap;

cacheCanvas = newCanvas;

}

private float cur_x, cur_y;

@Override

public boolean onTouchEvent(MotionEvent event) {

getParent().requestDisallowInterceptTouchEvent(true);// 通知父控件勿拦截本控件touch事件

float x = event.getX();

float y = event.getY();

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN: {

cur_x = x;

cur_y = y;

path.moveTo(cur_x, cur_y);

break;

}

case MotionEvent.ACTION_MOVE: {

path.quadTo(cur_x, cur_y, x, y);

cur_x = x;

cur_y = y;

lisener.hideWords();//隐藏提醒的文字

break;

}

case MotionEvent.ACTION_UP: {

cacheCanvas.drawPath(path, paint);

path.reset();

break;

}

}

invalidate();

return true;

}

public interface OnMoveLisener{

void hideWords();//主界面回调后隐藏提示文字

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助。

android开发 手写签名,Android实现手写签名相关推荐

  1. android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...

    本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1   Android Studio配置 2.1.1 ...

  2. Android开发介绍(基于Android Studio软件)

    Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...

  3. Android开发之生成自己的签名文件及App签名打包

    首先,要想生成Android App的签名文件必须先配好Android开发环境,因为签名文件的生成需要进入jdk中的bin目录,如果还未配好开发环境,请自行百度. 下面,我们开始生成自己的签名文件, ...

  4. android开发面试准备!Android黑科技保活实现原理揭秘,内容太过真实

    开头 年前面试了一些公司,目前已经拿到了阿里跟头条的 offer.去年我也出去找工作了,面试五家拿到了四家公司的 offer.所以在面试方面我应该可以提供一些愚见吧.本篇会讲解一些常见题目以及一些答题 ...

  5. Android开发技巧!高级Android晋升之View渲染机制,Android篇

    前言 众所周知,Xamarin应该是.net下的跨平台开发工具.2016年之前还处于收费状态,后被微软收购后开源.但似乎有个现象,开源后的Xamarin发展似乎有些停滞,而且维护Xamarin的团队又 ...

  6. Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材

    AndroidDevTools AndroidSDK在线更新镜像服务器 中国科学院开源协会镜像站地址: IPV4/IPV6:mirrors.opencas.cn端口:80 IPV4/IPV6:mirr ...

  7. Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)

    一.引言    本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于Intelli ...

  8. Android开发之获取常用android设备参数信息

    如下图: 查看工具类:下载apk的方法缺少xutils库,可以自己添加xutils库 package com.mchsdk.paysdk.utils;import android.Manifest; ...

  9. android开发 方式有哪些,Android开发从入门到精通

    摘要: 本书循序渐进地详细讲解了Android技术的基本知识, 并通过实例的方式讲解了Android在各个领域的具体应用和实现过程.全书分为20个章节, 第1章讲解了Android操作系统概述的基本知 ...

  10. android开发论坛!关于Android开发的面试经验总结,含爱奇艺,小米,腾讯,阿里

    前言 近期被两则消息刷屏,[字节跳动持续大规模招聘,全年校招超过1万人][腾讯有史以来最大规模的校招启动]当然Android岗位也包含在内,因此Android还是有很多机会的.结合往期面试的同学(主要 ...

最新文章

  1. (0031) iOS 开发之图片压缩
  2. 《大话数据结构》第9章 排序 9.8 归并排序(上)
  3. SAP Spartacus的登录页面的用户名显示逻辑
  4. php文件怎么阅读器,Vue文件阅读器组件FileReader API
  5. 'ADB server didn't ACK'的解决办法
  6. mysql分组之后统计数量
  7. 歪枣网Mysql优化总结
  8. 利用Github搭建免费图床
  9. Kafka 源码分析之网络层(一)
  10. XP建立隐藏的超级用户
  11. 原价399,限时1元!7天人工智能入门训练营:带你从0掌握机器学习算法!
  12. 二、JAVA第一行代码
  13. C语言中的 pow 函数 使用方法及注意事项,和常见报错原因,且分享实战中的使用
  14. echarts 横向柱状图
  15. python .txt文件转.csv文件-ok
  16. 传感器模组:手机摄像头模组-1亿像素是如何实现的?
  17. 微信小程序电商实战-首页(上)
  18. Python011: Python大作业之移动的小火车动画(四)代码实现
  19. uniapp 微信小程序 swiper修改指示点的位置和样式
  20. 【八月英语----照亮我心】

热门文章

  1. SpringCloud微服务实战—翟永超 读书笔记
  2. 十大排序算法Java版
  3. 【续篇】再次调戏勒索软件大黑客
  4. vue-pdf 字体不显示
  5. 花两个月吃透京东T8推荐的178页京东基础架构建设之路,入职定T5
  6. Linux ——vi / vim 新建文件vi abc.txt 、编辑文件 i、退出编辑 esc、保存文件:wq、打开文件所在目录 open . 、使用命令打开文件 open ./abc.txt。
  7. 漏洞复现永恒之蓝MS-17010+修复
  8. Python爬取网易云音乐评论
  9. 【3dmax千千问】初学3dmax插件神器第18课|VRAY渲染教程|疯狂模渲大师用3dmax插件神器的扫描线渲染器该怎么表现效果图的写实效果?
  10. Python 数据恢复实战 - 恢复U盘中的chk文件,以及误删的文件