手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android仿英语流利说取词放大控件的实现方法(附demo源码下载)
Android仿英语流利说取词放大控件的实现方法(附demo源码下载)
摘要:本文实例讲述了Android仿英语流利说取词放大控件的实现方法。分享给大家供大家参考,具体如下:1取词放大控件英语流利说是一款非常帮的口语学...

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

1 取词放大控件

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

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

2 代码示例

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

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

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仿英语流利说取词放大控件的实现方法(附demo源码下载)】相关文章:

Android从服务器获取图片的实例方法

android中处理各种触摸事件的方法浅谈

Android不读入内存获取图像宽高信息的方法

android书架效果实现原理与代码

解析Android开发中多点触摸的实现方法

Android在OnCreate中获取控件的宽度和高度的实现代码

Android中实现水平滑动(横向滑动)ListView示例

Android 有道词典的简单实现方法介绍

Android中将一个图片切割成多个图片的实现方法

android中图片翻页效果简单的实现方法

精品推荐
分类导航