安卓手写个人签名

安卓手写个人签名

package com.tm.pos.msk.view;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
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;
public class HandwritingView extends View
{
 private Bitmap cacheBitmap ;//缓存图片
 private Canvas cacheCanvans ;//缓存画板
 private Paint paint;
 private @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:
    path.moveTo(x, y);
   break;
  case MotionEvent.ACTION_MOVE:
   path.lineTo(x, y);
   cacheCanvans.drawPath(path, paint);
//   path.reset();
   invalidate();
   break;
  case MotionEvent.ACTION_UP:
//   cacheCanvans.drawPath(path, paint);
   //将canvans转成bitmap
//   cacheCanvans
   path.reset();
//   invalidate();
   break;
  default:
   break;
  }
  return true;
 }
 
 @Override
 protected void onDraw(Canvas canvas)
 {
  super.onDraw(canvas);
  canvas.drawColor(Color.WHITE);//绘制背景
  canvas.drawBitmap(cacheBitmap, 0, 0, paint);
 }
 /**
  * 重置视图
  */
 public void resetView(){
  cacheBitmap = Bitmap.createBitmap(VIEW_WIDTH, VIEW_HEIGHT, Config.ARGB_8888);
  invalidate();
 }
 /**
  * 获取手写图片
  * @return
  */
 public Bitmap getBitmap(){
  return cacheBitmap;
 }
} Path path;//每次滑动路径
 private final int VIEW_HEIGHT = 300;//视图高度
 private final int VIEW_WIDTH = 480;//视图宽度
 
 public HandwritingView(Context context, AttributeSet attrs)
 {
  super(context, attrs);
  //初始化缓存图片
  cacheBitmap = Bitmap.createBitmap(VIEW_WIDTH, VIEW_HEIGHT, Config.ARGB_8888);
  cacheCanvans = new Canvas(cacheBitmap);
  //初始化画笔,并设定样式
  paint = new Paint();
  paint.setColor(Color.RED);//设置颜色
  paint.setStrokeWidth(2);//设置颜色
  paint.setStyle(Paint.Style.STROKE);
  paint.setAntiAlias(true);//消除锯齿
  //初始化路径
  path = new Path();
  
  
 }
 

你可能感兴趣的:(手写签名)