本文实例讲述了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仿英语流利说取词放大控件的实现方法(附demo源码下载)...相关推荐

  1. 仿英语流利说取词放大控件的实现

    1 取词放大控件 英语流利说是一款很帮的口语学习app.在app的修炼页面长按屏幕,会弹出一个放大镜,当手指移到某个单词的附近,能够看到该英文单词会被选中,效果例如以下图所看到的: 2 代码演示样例 ...

  2. echarts圆柱形柱状图 源码_jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】...

    jQuery插件echarts实现的多柱子柱状图效果示例[附demo源码下载] 发布时间:2020-09-08 07:46:02 来源:脚本之家 阅读:74 作者:翱翔天地 本文实例讲述了jQuery ...

  3. android 自定义搜索框edittext,Android编程自定义搜索框实现方法【附demo源码下载】...

    本文实例讲述了Android编程自定义搜索框实现方法.分享给大家供大家参考,具体如下: 先来看效果图吧~ 分析:这只是模拟了一个静态数据的删除与显示 用EditText+PopupWindow+lis ...

  4. 分类图片展示php源码,HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)...

    本文讲述了HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果.分享给大家供大家参考,具体如下: 因为本人是星际争霸系列游戏的忠实拥簇,所以在今天的jQuery教程中,我 ...

  5. android动画实例源码,Android编程实现简易弹幕效果示例【附demo源码下载】

    本文实例讲述了Android编程实现简易弹幕效果.分享给大家供大家参考,具体如下: 首先上效果图,类似于360检测到骚扰电话页面: 布局很简单,上面是一个RelativeLayout,下面一个Butt ...

  6. php响应鼠标,jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】

    本文实例讲述了jQuery实现响应鼠标事件的图片透明效果.分享给大家供大家参考,具体如下: 实现的思想: 1.当鼠标放在图片上面的时候触发mouseover mouseenter两个事件(图片变得透明 ...

  7. android 融云 + 科大讯飞 实现仿微信语音消息转换为文字(附DEMO源码)

    融云SDK 使用很方便,简单配置就可以搭建即时通讯功能,配合科大讯飞的语音识别, 即可实现微信中语音消息转换为文字的功能 融云sdk的基本使用就不细说了, 网上很多资料 使用融云sdk自带的聊天会话界 ...

  8. Android 二维码 生成和识别(附Demo源码)

    Posted on 2013-08-25 23:15 泡泡糖 阅读( 20424) 评论( 7) 编辑 收藏 今天讲一下目前移动领域很常用的技术--二维码.现在大街小巷.各大网站都有二维码的踪迹,不管 ...

  9. Android 的反编译 (附愤怒的小鸟源码下载)

    读源码是最好的学习方法,下面我们以愤怒的小鸟为例,看看如何把一个android游戏反编译成可读的源码. 工具介绍: 1.apktool   这个工具用来解压xml文件 到http://code.goo ...

最新文章

  1. 《告别失控:软件开发团队管理必读》一一2.9 工具
  2. 【HTTP协议】HTTP状态码列表大全
  3. UA MATH571B 试验设计 Quarter 2-level析因设计
  4. Unicode字符编码表
  5. 修改Netbeas的注释结构
  6. springboot+自定义注解实现灵活的切面配置
  7. Service Work生命周期
  8. 安全工具大全(持续补充中)
  9. 三种编码器协议(Endat\BISS\SSI)
  10. 理论 - 平面倒F天线(PIFA)
  11. ssm基于android的个人健康打卡系统APP-计算机毕业设计
  12. 2020-12-10 PMP 群内练习题 - 光环
  13. 【算法与数据结构】——并查集
  14. 数据结构之求二叉树叶子结点个数
  15. 把常用网站固定在任务栏
  16. 你想学Python爬虫?看看这篇关于开发者工具神器的博客吧
  17. Java基础1(数组)
  18. GGB0/OB28/OKC7/GGB1/OBBH/OKC9FICO增强
  19. 前端进度报告(2018.6.3)
  20. 视频监控存储特点分析

热门文章

  1. 上海万应云数科——助力地方政府和产业园建立数字资产运营管理平台
  2. linux上传下载工具lrzsz
  3. 软考高级之信息系统案例分析七重奏-《4》
  4. 设计模式之 创建型模式
  5. ctfshow-web爆破(web21-28)
  6. React高阶组件和高阶函数
  7. 四级英语作文:关于七天假期制度的讨论
  8. c++ #define 用法
  9. iOS APP 架构设计
  10. 计算机学校中高职成都,成都市计算机工程职业技术学校2020年招生计划