基本信息
源码名称:Android 用于电子签名手势识别 例子
源码大小:0.09M
文件格式:.rar
开发语言:Java
更新时间:2016-01-25
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 3 元×
微信扫码支付:3 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
/* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.gesture.builder; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.view.MotionEvent; import android.gesture.GestureOverlayView; import android.gesture.Gesture; import android.gesture.GestureLibrary; import android.widget.TextView; import android.widget.Toast; import java.io.File; public class CreateGestureActivity extends Activity { private static final float LENGTH_THRESHOLD = 120.0f; private Gesture mGesture; private View mDoneButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.create_gesture); mDoneButton = findViewById(R.id.done); GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay); overlay.addOnGestureListener(new GesturesProcessor()); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (mGesture != null) { outState.putParcelable("gesture", mGesture); } } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mGesture = savedInstanceState.getParcelable("gesture"); if (mGesture != null) { final GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay); overlay.post(new Runnable() { public void run() { overlay.setGesture(mGesture); } }); mDoneButton.setEnabled(true); } } public void addGesture(View v) { if (mGesture != null) { final TextView input = (TextView) findViewById(R.id.gesture_name); final CharSequence name = input.getText(); if (name.length() == 0) { input.setError(getString(R.string.error_missing_name)); return; } final GestureLibrary store = GestureBuilderActivity.getStore(); store.addGesture(name.toString(), mGesture); store.save(); setResult(RESULT_OK); final String path = new File(Environment.getExternalStorageDirectory(), "gestures").getAbsolutePath(); Toast.makeText(this, getString(R.string.save_success, path), Toast.LENGTH_LONG).show(); } else { setResult(RESULT_CANCELED); } finish(); } @SuppressWarnings({"UnusedDeclaration"}) public void cancelGesture(View v) { setResult(RESULT_CANCELED); finish(); } private class GesturesProcessor implements GestureOverlayView.OnGestureListener { public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) { mDoneButton.setEnabled(false); mGesture = null; } public void onGesture(GestureOverlayView overlay, MotionEvent event) { } public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) { mGesture = overlay.getGesture(); if (mGesture.getLength() < LENGTH_THRESHOLD) { overlay.clear(false); } mDoneButton.setEnabled(true); } public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) { } } }