任务需求:
1、给定一段英文,其中部分单词高亮,点击其中任一单词,视为选中(高亮词不可被选中)
2、选中某个单词后,其附近出现弹框,箭头指向单词。默认在单词的上面。如果上面空间不足,就展示在单词的下面。
其实,和现在很多学英语APP中的功能类似
本项目,取词,是基于
https://github.com/otwayz/Scallop
是在它的基础上进行的修改、升级。
好了,接下来,我讲解我写的这个项目
开头,先来个缺点:
本项目中的弹框,属性是:
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
不是那种宽度适应文字内容的,因为做成那样的,计算量会增加,我就简单化了
效果图(这是之前的效果图,新的取消了“查看更多”上面的横线,但是同理)
很多注释,我已经写在代码中了 ,注意看注释就好。接下来,我会对项目的中的一些操作,做说明。尤其是代码中的一写操作,我会做详细说明
1、因为正则匹配单词的原因,不能识别带横线的单词,如:air-plane(飞机) 这种的。
如要修改,去
SelectWordView -> setTextWord2Span ->
val pattern = Pattern.compile("[