Android实现签名涂鸦手写板

本文实例为大家分享了Android实现签名涂鸦手写板的具体代码,供大家参考,具体内容如下

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">

  <FrameLayout
    android:id="@+id/fl_signature"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="10dp"
    android:background="@drawable/singature_bg"
    android:gravity="top">
  </FrameLayout>
  <ImageView
    android:id="@+id/iv_signature"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="10dp"
    android:background="@drawable/signature_shape"
    android:gravity="top"
    android:visibility="gone"/>

  <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp">

        <TextView
          android:id="@+id/tv_revert_signature"
          android:layout_width="100dp"
          android:layout_height="35dp"
          android:layout_alignParentRight="true"
          android:layout_marginRight="140dp"
          android:background="@drawable/btn_order_details_pay_bg"
          android:gravity="center"
          android:paddingLeft="30dp"
          android:paddingRight="30dp"
          android:text="重签"
          android:textColor="@color/code_number_bg"
          android:textSize="@dimen/text_title_word" />

        <TextView
          android:id="@+id/tv_signature_save"
          android:layout_width="100dp"
          android:layout_height="35dp"
          android:layout_alignParentRight="true"
          android:layout_marginRight="20dp"
          android:background="@drawable/bt_bg"
          android:gravity="center"
          android:paddingLeft="30dp"
          android:paddingRight="30dp"
          android:text="保存"
          android:textColor="@color/white"
          android:textSize="@dimen/text_title_word" />

      </RelativeLayout>

</LinearLayout>

//开始签名

private void StartSignature() {
    // 获取屏幕尺寸
    DisplayMetrics mDisplayMetrics = new DisplayMetrics();
    getWindow().getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics);
  }

  @Override
  public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if(hasFocus&&mPaintView==null){
      int screenWidth = mFl_signature.getMeasuredWidth();
      int screenHeight = mFl_signature.getMeasuredHeight();
      mPaintView=new PaintView(getApplicationContext(),screenWidth, screenHeight);
      mFl_signature.addView(mPaintView);
      mPaintView.requestFocus();
    }
  }

//创建签名文件

private void createSignFile() {

    FileOutputStream fos = null;

    File file = null;
    try {
      path= generateImgePath();
      file = new File(path);
      fos = new FileOutputStream(file);

      //如果设置成
      mPaintBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        if (fos != null) {
          fos.close();
        }

      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

//重新签名

if (mPaintView.getPath().isEmpty()){
          ToastUtils.showShort(this,"您还没有签名呦");
        }else {
          mPaintView.clear();

        }

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

(0)

相关推荐

  • Android实现Path平滑的涂鸦效果实例

    前言 在最近的一个项目中做了一个涂鸦的效果,手指快速移动,会出现折线,这篇文章记录笔触优化.下面话不多说了,来一起看看详细的介绍吧. 优化前 优化 设计到的类:Paint,Path Path类记录了坐标点集合决定线条轨迹,Paint决定怎么画 Paint处理 //连接的外边缘以圆弧的方式相交 paint.setStrokeJoin(Paint.Join.ROUND); //线条结束处绘制一个半圆 paint.setStrokeCap(Paint.Cap.ROUND); Path处理 这里用的到有

  • Android 使用Path实现涂鸦功能

    今天实现一个涂鸦效果,会分几步实现,这里有一个重要的知识点就是图层,要理解这个,不然你看这篇博客,很迷茫,迷茫的苍茫的天涯是我的爱,先从简单的需求做起,绘制一条线,代码如下: package com.tuya; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.util

  • android中实现在ImageView上随意画线涂鸦的方法

    我实现的思路: 1.继承ImageView类 2.重写onTouchEvent方法,在ACTION_MOVE(即移动时),记录下所经过的点坐标,在ACTION_UP时(即手指离开时,这时一条线已经画完),将所画的线(点的集合)保存在一个集合中 3.重写onDraw方法,利用canvas和所记录下的线和点画出线来 可能我讲的十分笼统,下面来看看实际的代码吧 //代表ImageView上的一点 public class ViewPoint { float x; float y; } //表示一条线

  • Android 开发实例简单涂鸦板

    在Android上开发一些小应用既可以积累知识又可以增加乐趣,与任务式开发不同,所以想到在Android系统上实现一个简单的涂鸦板,这是我们练手的一种好的方法.   涂鸦板应用的代码实现 新建工程MyWall,修改/res/layout/main.xml文件,在里面添加一个SurfaceView和两个Button,用到了RelativeLayout布局,完整的main.xml文件如下: XML/HTML代码 <?xml version="1.0" encoding="u

  • Android编程实现的手写板和涂鸦功能

    本文实例讲述了Android编程实现的手写板和涂鸦功能.分享给大家供大家参考,具体如下: 下面仿一个Android手写板和涂鸦的功能,直接上代码: write_pad.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:greendroid="http://schemas.android.com/apk/res/com.cyrilmottier.androi

  • android 实现在照片上绘制涂鸦的方法

    这个应该是简易版的美图秀秀(小伙伴们吐槽:你这也叫简易版的??我们看着怎么不像啊--).好吧,只是在图片上绘制涂鸦,然后保存. 一.选择图片 这个道长有必要说一下,在绘制涂鸦时,笔画会根据设置ImageView的大小和屏幕的尺寸(不是像素)产生误差.这个道长暂时还没有找到解决方法,只是规避了一下. 把ImageView设置为全屏,布局文件代码如下 <?xml version="1.0" encoding="utf-8"?> <FrameLayout

  • Android编程实现在Bitmap上涂鸦效果

    本文实例讲述了Android编程实现在Bitmap上涂鸦效果.分享给大家供大家参考,具体如下: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" andro

  • Android实现签名涂鸦手写板

    本文实例为大家分享了Android实现签名涂鸦手写板的具体代码,供大家参考,具体内容如下 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:

  • Android 应用签名的两种方法

    Android 应用签名的两种方法 一.使用pem签名 (一) apk签名命令 java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 Hello.apk Hello_signed.apk -w 是指对ROM签名时需使用的参数 publickey.x509[.pem] 签名公钥文件,例如platform.x509.pem,在build\target\product\security下 privatekey.pk8 签名私钥文件

  • Android 获取签名公钥和公钥私钥加解密的方法(推荐)

    如下所示: public class GetPublicKey { /** * 获取签名公钥 * @param mContext * @return */ protected static String getSignInfo(Context mContext) { String signcode = ""; try { PackageInfo packageInfo = mContext.getPackageManager().getPackageInfo( GetAppInfo.g

  • Android Studio签名打包的两种方式(图文教程)

    签名打包的两种方式: 注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如果不知道签名是啥意思,请自行百度哦.在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application", 1.方式1:通过Android Studio进行签名: 选中app这个module,选择菜单栏"Buil

  • Android开发签名知识梳理总结

    目录 前言 一.签名基础 1. 消息摘要 2. 加密算法 2.1 对称加密 2.2 非对称加密 2.3 使用场景 3. 数字签名 4. 数字证书 二.Android签名机制 1. Android签名机制的异同点 2. Debug和Relase的签名 三.签名方案 1 v1方案 2. v2方案 四.签名过程 1. v3方案 2. v4方案 3. 向下兼容的签名方案 前言 最近帮测试做了一点关于签名的需求,今天就和各位同学简单聊一聊关于签名的那些事儿. 如果问到 Android 为什么需要签名?大家

  • android应用签名详细步骤

    1.准备工作apk的签名工作可以通过两种方式来完成: 1)通过ADT提供的图形化界面完成apk签名:右键项目--> Android Tools -->Export Signed Application Package... --> 打开图形界面2)完全通过shell/dos命令来完成apk签名 我比较喜欢第2)种方式,所以下面将讲解如何通过命令的方式完成apk签名. 给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool. jarsigner. zipalign,下面是对

  • Android微信签名知识的总结

    前言 最近遇到一个项目的应用要上微信登录,大家都知道微信登录是需要开放平台上申请的,在微信开发平台创建移动应用后,需要填写: 需要填写的内容 问题 这里的应用签名是keystore的证书的md5,但是微信的这个只有一个填写输入框,不像百度地图.高德地图那样,有线上的SHA1和开发调试的SHA1两种,那这就纠结了,在开发运行的时候AS IDE默认使用的签名keystore是系统的 debug.keystore,系统的和自己项目线上的keystore的MD5.SHA1肯定是不一样的,那么问题来了,要

  • Android自定义有限制区域的图例角度自识别涂鸦工具类完结篇

    目录 引言 总结 引言 上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(中)中我们已经实现了在复杂的异形区域中涂鸦,最后生成图片保存的功能.这篇我们将继续升华,在此基础上实现涂鸦图片方向和手势方向保持一致的功能. 首先涂鸦如果要使用自定义的图片进行涂色,我们要如何实现呢?其实在Paint中提供了一个着色器属性,我们可以根据需求设置对应的着色器. //设置着色器 public Shader setShader(Shader shader) { // If mShader

  • Android自定义有限制区域图例角度自识别涂鸦工具类中篇

    目录 引言 总结 引言 上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(上)中我们已经实现了自定义View签名的功能,包含撤回.清除方法.但我们最终要实现的功能还不止如此,这篇我们就来说说给限制区域内签名的实现过程. 试想,既然是自定义View了,那么如果要限制用户在指定区域内签名,最好的办法不是在触摸的时候通过坐标点的判断添加一些拦截吗?没错,起初我也是这么想的,但是再看到限制区域的图形后,我陷入了深深的沉思...... 没错,就是这样的图,这还是其中的一张,后期指

随机推荐