日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何使用Android實(shí)現(xiàn)屏幕手寫簽名

這篇文章給大家分享的是有關(guān)如何使用Android實(shí)現(xiàn)屏幕手寫簽名的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)湖里,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

Android屏幕手寫簽名的原理就是把手機(jī)屏幕當(dāng)作畫板,把用戶手指當(dāng)作畫筆,手指在屏幕上在屏幕上劃來劃去,屏幕就會(huì)顯示手指的移動(dòng)軌跡,就像畫筆在畫板上寫字一樣。實(shí)現(xiàn)手寫簽名需要結(jié)合繪圖的路徑工具Path,在有按下動(dòng)作時(shí)調(diào)用Path對(duì)象的moveTo方法,將路徑起始點(diǎn)移動(dòng)到觸摸點(diǎn);在有移動(dòng)操作時(shí)調(diào)用Path對(duì)象的quadTo方法,將記錄本次觸摸點(diǎn)與上次觸摸點(diǎn)之間的路徑;在有移動(dòng)操作與提起動(dòng)作時(shí)調(diào)用Canvas對(duì)象的drawPath方法,將本次觸摸繪制在畫布上。

layout/activity_signature.xml界面布局代碼如下:



 

 

 

 

SignatureActivity.java邏輯代碼如下:

package com.fukaimei.touchevent;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast;

import com.fukaimei.touchevent.filedialog.dialog.FileSaveFragment;
import com.fukaimei.touchevent.util.BitmapUtil;
import com.fukaimei.touchevent.widget.SignatureView;

public class SignatureActivity extends AppCompatActivity implements
 OnClickListener, FileSaveFragment.FileSaveCallbacks {
 private SignatureView view_signature;
 private ImageView iv_signature_new;
 private Bitmap mBitmap;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_signature);
 view_signature = (SignatureView) findViewById(R.id.view_signature);
 iv_signature_new = (ImageView) findViewById(R.id.iv_signature_new);
 findViewById(R.id.btn_add_signature).setOnClickListener(this);
 findViewById(R.id.btn_end_signature).setOnClickListener(this);
 findViewById(R.id.btn_reset_signature).setOnClickListener(this);
 findViewById(R.id.btn_revoke_signature).setOnClickListener(this);
 findViewById(R.id.btn_save_signature).setOnClickListener(this);
 }

 @Override
 public void onClick(View v) {
 if (v.getId() == R.id.btn_save_signature) {
 if (mBitmap == null) {
 Toast.makeText(this, "請(qǐng)先開始然后結(jié)束簽名", Toast.LENGTH_LONG).show();
 return;
 }
 FileSaveFragment.show(this, "jpg");
 } else if (v.getId() == R.id.btn_add_signature) {
 view_signature.setDrawingCacheEnabled(true);
 } else if (v.getId() == R.id.btn_reset_signature) {
 view_signature.clear();
 } else if (v.getId() == R.id.btn_revoke_signature) {
 view_signature.revoke();
 } else if (v.getId() == R.id.btn_end_signature) {
 if (view_signature.isDrawingCacheEnabled() != true) {
 Toast.makeText(this, "請(qǐng)先開始簽名", Toast.LENGTH_LONG).show();
 } else {
 mBitmap = view_signature.getDrawingCache();
 iv_signature_new.setImageBitmap(mBitmap);
 mHandler.postDelayed(mResetCache, 100);
 }
 }
 }

 private Handler mHandler = new Handler();
 private Runnable mResetCache = new Runnable() {
 @Override
 public void run() {
 view_signature.setDrawingCacheEnabled(false);
 view_signature.setDrawingCacheEnabled(true);
 }
 };

 @Override
 public boolean onCanSave(String absolutePath, String fileName) {
 return true;
 }

 @Override
 public void onConfirmSave(String absolutePath, String fileName) {
 String path = String.format("%s/%s", absolutePath, fileName);
 BitmapUtil.saveBitmap(path, mBitmap, "jpg", 80);
 Toast.makeText(this, "成功保存圖片文件:" + path, Toast.LENGTH_LONG).show();
 }

}

Demo程序運(yùn)行效果界面截圖如下:

如何使用Android實(shí)現(xiàn)屏幕手寫簽名

感謝各位的閱讀!關(guān)于“如何使用Android實(shí)現(xiàn)屏幕手寫簽名”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


分享名稱:如何使用Android實(shí)現(xiàn)屏幕手寫簽名
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/jpogoe.html