Android 实现银联刷卡机消费后手动签名的功能(示例代码)

Android 实现银联刷卡机消费后手动签名的功能(示例代码),第1张

概述几天前去物管交物业费,物管工作人员说小区引进高新产品,使用yhk消费后,不需要拿笔在银联机上签名,直接用手指触摸实现消费签名,当时心想,果然是高科技,机子外形如下左图,签名如下右图。

几天前去物管交物业费,物管工作人员说小区引进高新产品,使用yhk消费后,不需要拿笔在银联机上签名,直接用手指触摸实现消费签名,当时心想,果然是高科技,机子外形如下左图,签名如下右图。

仔细一看,其实就是一个触摸屏,用户在上面直接手动签名,实现这个功能其实并不复杂,我们自定义一个控件,继承vIEw,使用 Canvas的drawline,drawPoint这两个方法来实现这个功能。

首先自定义控件 MDrawlineVIEw

package com.vIEw;import androID.content.Context;import androID.graphics.Bitmap;import androID.graphics.Canvas;import androID.graphics.color;import androID.graphics.Paint;import androID.graphics.PorterDuff;import androID.util.AttributeSet;import androID.vIEw.MotionEvent;import androID.vIEw.VIEw;import androID.Widget.linearLayout;/** * Created by jiang on 2017/12/25. */public class MDrawlineVIEw extends VIEw { public MDrawlineVIEw(Context context){  super(context); } public MDrawlineVIEw(Context context,AttributeSet attrs){  super(context,attrs);  paint=new Paint(Paint.DITHER_FLAG);//创建一个画笔  if(bitmap==null){   bitmap = Bitmap.createBitmap(900,1200,Bitmap.Config.ARGB_8888); //设置位图的宽高  }  canvas=new Canvas();  canvas.setBitmap(bitmap);  paint.setStyle(Paint.Style.stroke);//设置非填充  paint.setstrokeWIDth(5);//笔宽5像素  paint.setcolor(color.RED);//设置为红笔  paint.setAntiAlias(true);//锯齿不显示 } @OverrIDe protected voID onDraw(Canvas canvas) {  super.onDraw(canvas);  if(bitmap==null){   bitmap = Bitmap.createBitmap(900,Bitmap.Config.ARGB_8888); //设置位图的宽高  }  canvas.drawBitmap(bitmap,null); } public voID clear(){  canvas.drawcolor(color.transparent,PorterDuff.Mode.CLEAR); } @OverrIDe public boolean ontouchEvent(MotionEvent event) {  switch (event.getAction()){   case MotionEvent.ACTION_MOVE: //用户手指在屏幕上移动画线    canvas.drawline(mov_x,mov_y,event.getX(),event.getY(),paint);    invalIDate();    break;   case MotionEvent.ACTION_DOWN://用户手指按下时画起点    mov_x=(int) event.getX();    mov_y=(int) event.getY();    canvas.drawPoint(mov_x,paint);    invalIDate();    break;   case MotionEvent.ACTION_UP:    break;  }  mov_x=(int) event.getX();  mov_y=(int) event.getY();  return true;  //return super.ontouchEvent(event); } private int mov_x;//声明起点x坐标 private int mov_y;//声明起点y坐标 private Paint paint;//声明画笔 private Canvas canvas;//画布 private Bitmap bitmap;//位图 private int blcolor;}

布局xml代码

<?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:gravity="center_horizontal" androID:padding="10dp" androID:orIEntation="vertical"> <com.vIEw.MDrawlineVIEw  androID:ID="@+ID/mDrawline"  androID:layout_wIDth="300dp"  androID:layout_height="400dp"  androID:background="@drawable/bg_drawline" /> <button  androID:ID="@+ID/clearBut"  androID:layout_wIDth="wrap_content"  androID:layout_height="wrap_content"  androID:text="清空" /></linearLayout>

背景 bg_drawline .xml

<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:shape="rectangle"> <!-- 描边--> <stroke androID:wIDth="2dp" androID:color="#45c01a"></stroke> <!-- 填充颜色 --> <solID androID:color="#fff"></solID> <!-- 圆角 --> <corners androID:radius="10dp"></corners></shape>

activity代码

package com.cktest;import androID.os.Bundle;import androID.support.annotation.Nullable;import androID.support.v7.app.AppCompatActivity;import androID.vIEw.VIEw;import androID.Widget.button;import com.vIEw.MDrawlineVIEw;/** * Created by jiang on 2017/12/25. */public class DrawlineAct extends AppCompatActivity implements VIEw.OnClickListener{ @OverrIDe protected voID onCreate(@Nullable Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentVIEw(R.layout.act_drawline);  mDrawline = (MDrawlineVIEw) findVIEwByID(R.ID.mDrawline);  clearBut = (button) findVIEwByID(R.ID.clearBut);  clearBut.setonClickListener(this); } @OverrIDe public voID onClick(VIEw v) {  switch (v.getID()){   case R.ID.clearBut:    mDrawline.clear();    break;  } } private MDrawlineVIEw mDrawline; private button clearBut;}

总结

以上所述是小编给大家介绍的AndroID 实现银联刷卡机消费后手动签名的功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

总结

以上是内存溢出为你收集整理的Android 实现银联刷卡机消费后手动签名的功能(示例代码)全部内容,希望文章能够帮你解决Android 实现银联刷卡机消费后手动签名的功能(示例代码)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存