布局文件
<?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 ()}