Android画布绘制签名应用程序
我正在开发android绘画签名应用程序,它可以灵活地清除绘画并将画布保存为位图图像。我在这个应用程序中遇到了一个问题,每当我想将画布保存为位图时,我都需要检查签名是否足够长。 如果签名太短,我必须要求用户再次签名。以下是我的代码: 本课程分为两类 手指绘画活动Android画布绘制签名应用程序,android,canvas,bitmap,paint,Android,Canvas,Bitmap,Paint,我正在开发android绘画签名应用程序,它可以灵活地清除绘画并将画布保存为位图图像。我在这个应用程序中遇到了一个问题,每当我想将画布保存为位图时,我都需要检查签名是否足够长。 如果签名太短,我必须要求用户再次签名。以下是我的代码: 本课程分为两类 手指绘画活动 public class FingerPaintActivity extends Activity implements OnClickListener{ private Button clearBtn, saveBtn; priv
public class FingerPaintActivity extends Activity implements OnClickListener{
private Button clearBtn, saveBtn;
private View myView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myView = findViewById(R.id.myView);
clearBtn = (Button) findViewById(R.id.clearBtn);
clearBtn.setOnClickListener(this);
saveBtn = (Button) findViewById(R.id.submitBtn);
saveBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == clearBtn) {
MyView.clearCanvas();
myView.invalidate();
myView.refreshDrawableState();
} else {
myView.setDrawingCacheEnabled(true);
myView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
myView.layout(0, 0, myView.getWidth(), myView.getHeight());
myView.buildDrawingCache(true);
Bitmap bm = Bitmap.createBitmap(myView.getDrawingCache());
myView.setDrawingCacheEnabled(false);
if (bm != null) {
try {
String path = Environment.getExternalStorageDirectory().toString();
OutputStream fOut = null;
File file = new File(path, "screentest.jpg");
fOut = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
Log.e("ImagePath", "Image Path : " + MediaStore.Images.Media.insertImage( getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()));
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
这是第二节课:
MyView
}
我面临的唯一问题是,在保存签名时,我必须在保存之前检查位图、画布或绘画的大小。我不知道该查哪一个
如果有人有想法,请帮助我。一个简单的方法是将触摸坐标之间的距离相加,只有当总和大于某个阈值时才接受签名 因此,保持接触中绘制的总距离的运行总和_move() 后来
if(mTotal >= MINIMUM_SIGNATURE_LENGTH)
{
acceptSignature();
}
谢谢老兄!!!!这对我帮助很大。我现在可以进行签名验证了!!
mTotal += Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
if(mTotal >= MINIMUM_SIGNATURE_LENGTH)
{
acceptSignature();
}