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

 更新时间:2016年02月15日 11:23:51   作者:bigconvience  
这篇文章主要介绍了Android仿英语流利说取词放大控件的实现方法,较为详细的分析了取词放大控件的实现步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • Android自定义view制作抽奖转盘

    Android自定义view制作抽奖转盘

    这篇文章主要为大家详细介绍了Android自定义view制作抽奖转盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 详解Android中Service AIDL的使用

    详解Android中Service AIDL的使用

    作为一名Android开发人员,如果没听过Service,那就有点说不过去了啊,Service是Android四大组件之一,它是不依赖于用户界面的,就是因为Service不依赖与用户界面,所以我们常常用于进行一些耗时的操作,比如:下载数据等;本文将详细介绍Android中Service AIDL的使用。
    2021-06-06
  • Android实现ListView左右滑动删除和编辑

    Android实现ListView左右滑动删除和编辑

    这篇文章主要为大家详细介绍了Android实现ListView左右滑动删除和编辑的相关资料,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android使用控件ImageView加载图片的方法

    Android使用控件ImageView加载图片的方法

    这篇文章主要为大家详细介绍了Android使用ImageView加载图片的方法,Android ImageView如何加载网络图片资源,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android仿微信视屏悬浮窗效果

    Android仿微信视屏悬浮窗效果

    这篇文章主要为大家详细介绍了Android仿微信视屏悬浮窗效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android TextWatcher三个回调以及监听EditText的输入案例详解

    Android TextWatcher三个回调以及监听EditText的输入案例详解

    这篇文章主要介绍了Android TextWatcher三个回调以及监听EditText的输入案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Android 使用 SharedPreferences 保存少量数据的实现代码

    Android 使用 SharedPreferences 保存少量数据的实现代码

    这篇文章主要介绍了Android 使用 SharedPreferences 保存少量数据的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • RecyclerView实现查看更多及收起

    RecyclerView实现查看更多及收起

    这篇文章主要为大家详细介绍了RecyclerView实现查看更多及收起,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 详解Android 中的文件存储

    详解Android 中的文件存储

    这篇文章主要介绍了Android 中的文件存储的相关资料,帮助大家更好的理解和学习使用Android开发,感兴趣的朋友可以了解下
    2021-03-03
  • android开发PathEffect问题处理

    android开发PathEffect问题处理

    本文主要整理了关于android中PathEffect的问题汇总以及处理方式,以及给大家做了关于PathEffect类的详细解释。
    2017-11-11

最新评论