汉王笔手写板怎么用?

汉王笔手写板怎么用?,第1张

问题一:汉王手写板的使用方法 首先你要上驱动,手写板随机应该带一张小盘你先把他安装上,再插手写板应该就直接能用了

问题二:如何使用汉王手写板手写输入 1

搜索“汉王笔驱动下载”,进入汉王笔驱动下载页面并下载驱动。

下载页面中目前看到的和汉王笔相关的驱动如附图所示的四个。3,4可以根据需要进行安装。

因为我在win7下使用汉王笔目前还没有遇到问题,所以没有安装3。如果在win7下使用汉王笔的过程中遇到了问题,可以下载3中文件,并按照文件中的txt说明进行替换。

根据描述文字,4是汉王笔软件的自动更新程序。我也没有安装。

2

安装汉王笔驱动

我手边的汉王笔是u *** 接口的,将汉王笔通过USB接入的时候WIN7就会进行驱动程序的查找。应该是因为我手边的电脑之前已经安装了汉王笔的驱动,WIN7的自动安装驱动程序软件没有提示有无法识别的硬件。

对于WIN7提示说有未识别的硬件的情况,则需要通过前一步下载的驱动程序安装驱动。

3

安装汉王全屏幕软件

打开步骤1中下载的hwpen_mini_20120207.rar文件,点击其中的setup文件进行安装。按照提示消息进行一步一步安装,安装完成后需要重启电脑。

4

打开汉王全屏幕软件

重启电脑后,会发现电脑桌面上出现汉王笔全屏幕软件的快捷方式,双击打开汉王笔软件,此时桌面的右下角出现汉王笔的输入界面。

5

新建txt文件,用汉王笔进行输入测试。

点击鼠标右键新建txt文件,在txt文件中点击鼠标左键将输入焦点放置于txt文件。使用汉王笔开始进行输入。

6

对识别结果进行修改

如果手写板的识别结果不正确,可以单击对应的文字进行修正,从其他候选字中选择目标输入的字。

问题三:如何使用汉王手写板手写输入 1 搜索“汉王笔驱动下载”,进入汉王笔驱动下载页面并下载驱动。 下载页面中目前看到的和汉王笔相关的驱动如附图所示的四个。3,4可以根据需要进行安装。 因为我在win7下使用汉王笔目前还没有遇到问题,所以没有安装3。如果在win7下使用汉王笔的过程中遇到了问题,可以下载3中文件,并按照文件中的txt说明进行替换。 根据描述文字,4是汉王笔软件的自动更新程序。我也没有安装。 2 安装汉王笔驱动 我手边的汉王笔是u *** 接口的,将汉王笔通过USB接入的时候WIN7就会进行驱动程序的查找。应该是因为我手边的电脑之前已经安装了汉王笔的驱动,WIN7的自动安装驱动程序软件没有提示有无法识别的硬件。 对于WIN7提示说有未识别的硬件的情况,则需要通过前一步下载的驱动程序安装驱动。 3 安装汉王全屏幕软件 打开步骤1中下载的hwpen_mini_20120207.rar文件,点击其中的setup文件进行安装。按照提示消息进行一步一步安装,安装完成后需要重启电脑。 4 打开汉王全屏幕软件 重启电脑后,会发现电脑桌面上出现汉王笔全屏幕软件的快捷方式,双击打开汉王笔软件,此时桌面的右下角出现汉王笔的输入界面。 5 新建txt文件,用汉王笔进行输入测试。 点击鼠标右键新建txt文件,在txt文件中点击鼠标左键将输入焦点放置于txt文件。使用汉王笔开始进行输入。 6 对识别结果进行修改 如果手写板的识别结果不正确,可以单击对应的文字进行修正,从其他候选字中选择目标输入的字。

问题四:汉王手写板怎么用 那你买的肯定是电磁板了没关系就能当鼠标的,点一下就是左键功能,笔上有个按扭就是右键功能

如果打开软件,在写字的时候可以设置纯笔状态、混合状态和纯鼠标状态

问题五:如何用汉王手写板输入文字? 如果您使用的是汉王手写板,安装完成后可以在桌面或者程序里面找到Hw标志的程序,点选子程序汉王全屏幕或者汉王手写窗口,双击打开,在屏幕右下角会有手写窗口或者全屏幕的标识。如果是使用汉王全屏幕,这时候打开文档,就可以恭字了;如果使用汉王手写窗口,在窗口写好字后发送到文档即可。

如还有疑问,可拨打汉王服务热线:95105910

问题六:汉王手写板 怎么关闭鼠标功能 可以取消手写笔的鼠标单击功能,在汉王全屏幕的软件上有个鼠标和笔切换的按钮,您选择只有手写笔就可以了!

问题七:Photoshop使用汉王手写板为什么不能输入文字 可以写字啊,你要把手写软件打开啊。

问题八:汉王手写板无法在网页写字 第一:打开瑞星杀毒软件,选择防御分页,关闭应用程序保护选项即可

第二:如果进行完第一步 *** 作后,仍然不能正常使用那么请把第一项取消,然后进行以下 *** 作

打开瑞星杀毒软件---选择设置菜单下的防御设置---主动防御白名单---点添加---点浏览---然后找到手写板的系统文件(如果安装驱动的过程中你选择的是默认安装,那么手写板的系统文件路径为:c:\program files\ziguang或handwrite或handstar) ---把手写板的系统文件全都添加进入即可.

问题九:汉王小龙女手写板使用方法 打开汉王软件-汉王笔全屏幕才能写字

问题十:汉王手写板怎么不能用啊 别的电脑都可以 就我电脑不行 有可能是系统的兼容性不好,你下载汉王最新的驱动程序试下,不行就换一个系统盘重装一下

实现手写功能的主要步骤:

1. 自定义两个View,一个是TouchView,用于在上面画图,另一个是EditText,用于将手写的字显示在其中,并且,要将两个自定义View通过FrameLayout帧式布局重叠在起,以实现全屏手写的功能。

2 在TouchView中实现写字,并截取画布中的字以Bitmap保存。

3. 设置定时器,利用handle更新界面。

下面是实现的细节:

1. 手写的界面设计:

如上图所示,和上节的画板界面一致,底部分选项菜单栏,有5个选项,分别是调整画笔大小,画笔颜色,撤销,恢复,以及清空,对于这些功能,之后几节再实现。

布局文件activity_handwrite.xml

<!--?xml version=1.0 encoding=utf-8?-->

<relativelayout android:background="@android:color/white" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"><imageview android:layout_above="@+id/paintBottomMenu" android:layout_height="wrap_content" android:layout_width="match_parent" android:src="@drawable/line">

</imageview></relativelayout>

可以看出,里面有两个自定义view,并且通过FrameLayout重叠在一起。

先来看com.example.notes.LineEditText,这个其实和添加记事中的界面一样,就是自定义EditText,并且在字的下面画一条线。

LineEditText.java

public class LineEditText extends EditText {

  private Rect mRect

  private Paint mPaint

 

  public LineEditText(Context context, AttributeSet attrs) {

      // TODO Auto-generated constructor stub

      super(context,attrs)

      mRect = new Rect()

      mPaint = new Paint()

      mPaint.setColor(Color.GRAY)

  }

 

  @Override

  protected void onDraw(Canvas canvas) {

      super.onDraw(canvas)

      //得到EditText的总行数

      int lineCount = getLineCount()

      Rect r = mRect

      Paint p = mPaint

      //为每一行设置格式

      for(int i = 0i <lineCounti++){

          //取得每一行的基准Y坐标,并将每一行的界限值写到r中

          int baseline = getLineBounds(i, r)

          //设置每一行的文字带下划线

          canvas.drawLine(r.left, baseline+20, r.right, baseline+20, p)

      }

  }

}

另一个就是com.example.notes.TouchView,实现了绘制,及定时更新界面的功能,具体看代码

TouchView.java

public class TouchView extends View {

  private Bitmap  mBitmap,myBitmap

  private Canvas  mCanvas

  private Path    mPath

  private Paint   mBitmapPaint

  private Paint mPaint

  private Handler bitmapHandler

  GetCutBitmapLocation getCutBitmapLocation

  private Timer timer

  DisplayMetrics dm

  private int w,h

  public TouchView(Context context) {

      super(context)

      dm = new DisplayMetrics()

      ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm)

      w = dm.widthPixels

      h = dm.heightPixels

      initPaint()

  }

 

  public TouchView(Context context, AttributeSet attrs) {

      super(context,attrs)

      dm = new DisplayMetrics()

      ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm)

      w = dm.widthPixels

      h = dm.heightPixels

      initPaint()

  }

  //设置handler

  public void setHandler(Handler mBitmapHandler){

      bitmapHandler = mBitmapHandler

  }

 

  //初始化画笔,画布

  private void initPaint(){

      mPaint = new Paint()

      mPaint.setAntiAlias(true)

      mPaint.setDither(true)

      mPaint.setColor(0xFF00FF00)

      mPaint.setStyle(Paint.Style.STROKE)

      mPaint.setStrokeJoin(Paint.Join.ROUND)

      mPaint.setStrokeCap(Paint.Cap.ROUND)

      mPaint.setStrokeWidth(15)

      getCutBitmapLocation = new GetCutBitmapLocation()

     

      //画布大小

      mBitmap = Bitmap.createBitmap(w, h,

          Bitmap.Config.ARGB_8888)

      mCanvas = new Canvas(mBitmap) //所有mCanvas画的东西都被保存在了mBitmap中

     

      mCanvas.drawColor(Color.TRANSPARENT)

      mPath = new Path()

      mBitmapPaint = new Paint(Paint.DITHER_FLAG)

      timer = new Timer(true)

  }

 

  /**

   * 处理屏幕显示

   */

  Handler handler = new Handler(){

      public void handleMessage(Message msg) {

          switch (msg.what) {      

          case 1:

              myBitmap = getCutBitmap(mBitmap)

              Message message = new Message()

              message.what=1

              Bundle bundle = new Bundle()

              bundle.putParcelable(bitmap,myBitmap)

              message.setData(bundle)

              bitmapHandler.sendMessage(message)

              RefershBitmap()

              break

          }

          super.handleMessage(msg)

      }

  }

 

  /**

   * 发送消息给handler更新ACTIVITY    

   */

  TimerTask task = new TimerTask() {

      public void run() {

          Message message = new Message()

          message.what=1

          Log.i(线程, 来了)

          handler.sendMessage(message)

      }

  }

 

  //切割画布中的字并返回

  public Bitmap getCutBitmap(Bitmap mBitmap){

      //得到手写字的四周位置,并向外延伸10px

      float cutLeft = getCutBitmapLocation.getCutLeft() - 10

      float cutTop = getCutBitmapLocation.getCutTop() - 10

      float cutRight = getCutBitmapLocation.getCutRight() + 10

      float cutBottom = getCutBitmapLocation.getCutBottom() + 10

     

      cutLeft = (0 >cutLeft ? 0 : cutLeft)

      cutTop = (0 >cutTop ? 0 : cutTop)

     

      cutRight = (mBitmap.getWidth() <cutRight ? mBitmap.getWidth() : cutRight)

      cutBottom = (mBitmap.getHeight() <cutBottom ? mBitmap.getHeight() : cutBottom)

     

      //取得手写的的高度和宽度

      float cutWidth = cutRight - cutLeft

      float cutHeight = cutBottom - cutTop

     

      Bitmap cutBitmap = Bitmap.createBitmap(mBitmap, (int)cutLeft, (int)cutTop, (int)cutWidth, (int)cutHeight)

      if (myBitmap!=null ) {

          myBitmap.recycle()

          myBitmap= null

      }

     

      return cutBitmap

  }

 

  //刷新画布

  private void RefershBitmap(){

      initPaint()

      invalidate()

      if(task != null)

          task.cancel()

  }

 

  @Override

  protected void onDraw(Canvas canvas) {          

      canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint)    //显示旧的画布    

      canvas.drawPath(mPath, mPaint) //画最后的path

  }

 

  private float mX, mY

  private static final float TOUCH_TOLERANCE = 4

 

   //手按下时

  private void touch_start(float x, float y) {

      mPath.reset()//清空path

      mPath.moveTo(x, y)

      mX = x

      mY = y

      if(task != null)

          task.cancel()//取消之前的任务

      task = new TimerTask() {

         

          @Override

          public void run() {

              Message message = new Message()

              message.what=1

              Log.i(线程, 来了)

              handler.sendMessage(message)

          }

      }

      getCutBitmapLocation.setCutLeftAndRight(mX,mY)

  }

  //手移动时

  private void touch_move(float x, float y) {

      float dx = Math.abs(x - mX)

      float dy = Math.abs(y - mY)

      if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {

          mPath.quadTo(mX, mY, x, y)

          // mPath.quadTo(mX, mY, (x + mX)/2, (y + mY)/2)//源代码是这样写的,可是我没有弄明白,为什么要这样?

          mX = x

          mY = y

          if(task != null)

              task.cancel()//取消之前的任务

          task = new TimerTask() {

             

              @Override

              public void run() {

                  Message message = new Message()

                  message.what=1

                  Log.i(线程, 来了)

                  handler.sendMessage(message)

              }

          }

          getCutBitmapLocation.setCutLeftAndRight(mX,mY)

       

      }

  }

  //手抬起时

  private void touch_up() {

      //mPath.lineTo(mX, mY)

      mCanvas.drawPath(mPath, mPaint)

      mPath.reset()

     

      if (timer!=null) {

          if (task!=null) {

              task.cancel()

              task = new TimerTask() {

                  public void run() {

                      Message message = new Message()

                      message.what = 1

                      handler.sendMessage(message)

                  }

              }

              timer.schedule(task, 1000, 1000)              //2200秒后发送消息给handler更新Activity

          }

      }else {

          timer = new Timer(true)

          timer.schedule(task, 1000, 1000)                  //2200秒后发送消息给handler更新Activity

      }

     

  }

 

  //处理界面事件

  @Override

  public boolean onTouchEvent(MotionEvent event) {

      float x = event.getX()

      float y = event.getY()

     

      switch (event.getAction()) {

          case MotionEvent.ACTION_DOWN:

              touch_start(x, y)

              invalidate()//刷新

              break

          case MotionEvent.ACTION_MOVE:

              touch_move(x, y)

              invalidate()

              break

          case MotionEvent.ACTION_UP:

              touch_up()

              invalidate()

              break

      }

      return true

  }

}

这里面的难点就是利用TimerTask和Handle来更新界面显示,需要在onTouchEvent的三个事件中都要通过handle发送消息来更新显示界面。

接下来就是在activity里通过handle来得到绘制的字,并添加在editText中。

关于配置底部菜单,以及顶部标题栏,这里不再赘述,直接如何将绘制的字得到,并添加在edittext中:

得到绘制字体的Bitmap

//处理界面

Handler handler = new Handler(){

   @Override

   public void handleMessage(Message msg) {

       super.handleMessage(msg)

     

       Bundle bundle = new Bundle()

       bundle = msg.getData()

       Bitmap myBitmap = bundle.getParcelable(bitmap)

       InsertToEditText(myBitmap)

   }

}

其中myBitmap就是取得的手写字,保存在Bitmap中, InsertToEditText(myBitmap)是将该图片添加在edittext中,具体如下:

?

1

private LineEditText et_handwrite 

?

1

et_handwrite = (LineEditText)findViewById(R.id.et_handwrite)

//将手写字插入到EditText中

private void InsertToEditText(Bitmap mBitmap){

             

   int imgWidth = mBitmap.getWidth()

   int imgHeight = mBitmap.getHeight()

   //缩放比例

   float scaleW = (float) (80f/imgWidth)

   float scaleH = (float) (100f/imgHeight)

 

   Matrix mx = new Matrix()

   //对原图片进行缩放

   mx.postScale(scaleW, scaleH)

 

   mBitmap = Bitmap.createBitmap(mBitmap, 0, 0, imgWidth, imgHeight, mx, true)

   //将手写的字插入到edittext中

   SpannableString ss = new SpannableString(1)

   ImageSpan span = new ImageSpan(mBitmap, ImageSpan.ALIGN_BOTTOM)

   ss.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)

   et_handwrite.append(ss)

}

报错位置:公文或协同在调用office编辑器时会出现此错误。 原因:旧版office插件与新版office插件不关联。 解决办法:升级office高级插件。 *** 作步骤:点击桌面IE浏览器“属性”——“设置”——“查看对象”——删除“HandWriteCtrl Control”注:此 *** 作完成后关闭重启IE,进入OA系统,点击“辅助程序安装”选“office16 高级插件”提示安装成功,office插件升级完成,错误消除。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11360599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存