-
效果图
-
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="手写字体识别:"android:textSize="24sp"/><!-- 绘制手势的GestureOverlayView --><android.gesture.GestureOverlayViewandroid:id="@+id/gestures1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gestureStrokeType="multiple"android:eventsInterceptionEnabled="false"android:orientation="vertical"/>
</LinearLayout>
- 处理
import androidx.appcompat.app.AppCompatActivity;import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.Prediction;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;import java.util.ArrayList;public class StartActivity3 extends AppCompatActivity implements GestureOverlayView.OnGesturePerformedListener, GestureOverlayView.OnGesturingListener {GestureLibrary mLibrary;GestureOverlayView mDrawGestureView;TextView txt;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_start3);txt = findViewById(R.id.textView1);mDrawGestureView=findViewById(R.id.gestures1);mLibrary = GestureLibraries.fromRawResource(this,R.raw.gestures);if(!mLibrary.load()){finish();}//设置手势可多笔画绘制,默认情况为单笔画绘制mDrawGestureView.setGestureStrokeType(GestureOverlayView.GESTURE_STROKE_TYPE_MULTIPLE);//设置手势的颜色(蓝色)mDrawGestureView.setGestureColor(getResources().getColor(R.color.purple_200));//设置还没未能形成手势绘制是的颜色(红色)mDrawGestureView.setUncertainGestureColor(Color.RED);//设置手势的粗细mDrawGestureView.setGestureStrokeWidth(10);/*手势绘制完成后淡出屏幕的时间间隔,即绘制完手指离开屏幕后相隔多长时间手势从屏幕上消失;* 可以理解为手势绘制完成手指离开屏幕后到调用onGesturePerformed的时间间隔* 默认值为420毫秒,这里设置为2秒*/mDrawGestureView.setFadeOffset(2000);//绑定监听器mDrawGestureView.addOnGesturePerformedListener(this);mDrawGestureView.addOnGesturingListener(this);}@Overridepublic void onGesturingStarted(GestureOverlayView gestureOverlayView) {System.out.println("关于手势开始---");}@Overridepublic void onGesturingEnded(GestureOverlayView gestureOverlayView) {System.out.println("关于手势结束---");}@Overridepublic void onGesturePerformed(GestureOverlayView gestureOverlayView, Gesture gesture) {System.out.println("关于手势执行---"+gesture);ArrayList predictions=mLibrary.recognize(gesture);if(predictions.size()>0){Prediction prediction = (Prediction)predictions.get(0);if(prediction.score > 1.0){Toast.makeText(this,prediction.name,Toast.LENGTH_SHORT).show();txt.append(prediction.name);}}}
}
- 手势库
链接:https://pan.baidu.com/s/1yDFBneXG3X8_eBQmysET6g
提取码:xxw3
- 只能识别字母,没有字体的识别库,那位博友如果有字体库,麻烦分享个链接