当前位置: 首页 > 编程笔记 >

Android仿英语流利说取词放大控件的实现方法(附demo源码下载)

佟和平
2023-03-14
本文向大家介绍Android仿英语流利说取词放大控件的实现方法(附demo源码下载),包括了Android仿英语流利说取词放大控件的实现方法(附demo源码下载)的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Android仿英语流利说取词放大控件的实现方法。分享给大家供大家参考,具体如下:

1 取词放大控件

英语流利说是一款非常帮的口语学习app,在app的修炼页面长按屏幕,会弹出一个放大镜,当手指移到某个单词的附近,可以看到该英文单词会被选中,效果如下图所示:

2 代码示例

该控件挺有意思,于是我写了个简单的demo,完整实例代码点击此处本站下载。,程序运行后的效果如下:

3 实现原理

该控件的实现原理比较简单,下面介绍几个比较重要的类

① WordView

在实习该控件的过程中,我发现看似普通的TextView,其功能异常的强大,TextView的源码值得研究。WordView的主要功能是根据touch的位置,选择其附近的单词,然后更改选中单词的颜色,关键代码如下:

public void trySelectWord(MotionEvent event) {
  Layout layout = getLayout();
  if (layout == null) {
    return;
  }
  int line = layout.getLineForVertical(getScrollY() + (int) event.getY());
  final int index = layout.getOffsetForHorizontal(line, (int) event.getX());
  Word selectedWord = getWord(index);
  if (selectedWord != null) {
    mSpannableString.setSpan(mForegroundColorSpan,
        selectedWord.getStart(), selectedWord.getEnd(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    setText(mSpannableString);
    mSelectedWord = getText().subSequence(selectedWord.getStart(), selectedWord.getEnd()).toString();
    mOnWordSelectListener.onWordSelect();
  }
}

② ExercisePanel

该控件主要用来显示放大镜,原理比较简单,就不介绍了。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android资源操作技巧汇总》《Android开发入门与进阶教程》、《Android控件用法总结》、《Android短信与电话操作技巧汇总》及《Android多媒体操作技巧汇总(音频,视频,录音等)》

希望本文所述对大家Android程序设计有所帮助。

 类似资料:
  • 本文向大家介绍jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载),包括了jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现滚动鼠标放大缩小图片的方法。分享给大家供大家参考,具体如下: 在项目制作过程中,遇到了这么一个需求,就开发了一个,记录一下。 首先,需要定义html元素和css样式: 在这个样式

  • 本文向大家介绍jQuery打字效果实现方法(附demo源码下载),包括了jQuery打字效果实现方法(附demo源码下载)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery打字效果实现方法。分享给大家供大家参考,具体如下: 运行效果截图如下: 点击此处查看在线演示效果。 1.前台页面代码: 2.jticker_split.js脚本代码: 完整实例代码点击此处本站下载。 希望本文所

  • 本文向大家介绍Java上传文件进度条的实现方法(附demo源码下载),包括了Java上传文件进度条的实现方法(附demo源码下载)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java上传文件进度条的实现方法。分享给大家供大家参考,具体如下: 东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以实现实时更新已上传文件的大小

  • 本文向大家介绍jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载),包括了jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery自定义图片缩放拖拽插件imageQ实现方法。分享给大家供大家参考,具体如下: 综合网上一些代码 自己写的一个图片缩放拖拽的小插件 完整实例代码点击此处本站下载

  • 本文向大家介绍Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】,包括了Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程实现仿优酷圆盘旋转菜单效果的方法。分享给大家供大家参考,具体如下: 目前,用户对安卓应用程序的UI设计要求越来越高,因此,掌握一些新颖的设计很有必要.

  • 本文向大家介绍java生成XML的方法【附demo源码下载】,包括了java生成XML的方法【附demo源码下载】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java生成XML的方法。分享给大家供大家参考,具体如下: 下拉框的生成,我是通过javascript读取xml文件生成的。Xml文件是根据数据库生成的。Xml文件只相当于页面到数据库的一道缓存。这样利于性能。生成xml文件又是一