Android studio 手写输入字体,自动识别

  • 效果图
    在这里插入图片描述

  • 布局

<?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" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="手写字体识别:"
        android:textSize="24sp"/>
    <!-- 绘制手势的GestureOverlayView   -->
    <android.gesture.GestureOverlayView
        android: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;
    @Override
    protected 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);

    }
    @Override
    public void onGesturingStarted(GestureOverlayView gestureOverlayView) {
        System.out.println("关于手势开始---");

    }
    @Override
    public void onGesturingEnded(GestureOverlayView gestureOverlayView) {
        System.out.println("关于手势结束---");

    }
    @Override
    public 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

  • 只能识别字母,没有字体的识别库,那位博友如果有字体库,麻烦分享个链接
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AaVictory.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值